🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #26404

Re: Problemas con las llamadas

#26404
From: jmoya
Date: Mon, 04 Jan 1999 00:00
68 lines
2635 bytes

diego wrote:

> Hola a todos:
>
> �Sabr�a alguien c�mo se puede llamar a una funci�n que est� almacenada en
> una variable String?
>
> Me explico:
>
> String orden="Tipo1 funcion=new Tipo1(param1,param2);";
>
> y ahora poder llamar a ejecutar a la variable orden, algo as� como una
> indirecci�n.
>
> Saludos.

Hola Diego,

busca un tutorial o libro sobre la API reflection.
Aqui tienes un ejemplo de invocacion de un metodo dadas unas cadenas usando
esta API.

Este programa te permite ver como invocar un metodo dinamicamente.
El program obtiene el objeto Metodo para el metodo String.concat y
seguidamente lo invoca para concatenar dos objetos String.

          import java.lang.reflect.*;

          class SampleInvoke {

             public static void main(String[] args) {
                String firstWord = "Hola  ";
                String secondWord = "caracola.";
                String bothWords = append(firstWord, secondWord);
                System.out.println(bothWords);
             }

             public static String append(String firstWord, String secondWord)
{
                String result = null;
                Class c = String.class;
                Class[] parameterTypes = new Class[] {String.class};
                Method concatMethod;
                Object[] arguments = new Object[] {secondWord};
                try {
                  concatMethod = c.getMethod("concat", parameterTypes);
                  result = (String) concatMethod.invoke(firstWord,
arguments);
                } catch (NoSuchMethodException e) {
                    System.out.println(e);
                } catch (IllegalAccessException e) {
                    System.out.println(e);
                } catch (InvocationTargetException e) {
                    System.out.println(e);
                }
                return result;
             }
          }

     La salida del programa seria:

          Hola caracola.
 *******************************

Saludos,
Juan Moya
Technical Details
Message-ID: <369116B4.1C950BE8@mat.upc.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <768egq$k9a$1@talia.mad.ibernet.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 1116f3,efb819ff07a199be
X-Google-Attributes: gid1116f3,public
From: jmoya <jmoya@mat.upc.es>
Subject: Re: Problemas con las llamadas
Date: 1999/01/04
Message-ID: <369116B4.1C950BE8@mat.upc.es>
X-Deja-AN: 428726440
Content-Transfer-Encoding: 8bit
References: <768egq$k9a$1@talia.mad.ibernet.es>
To: diego <diemarpe@inf.upv.es>
X-Accept-Language: en
Content-Type: text/plain; charset=iso-8859-1
Organization: Universitat Politecnica de Catalunya
Mime-Version: 1.0
Newsgroups: es.comp.lenguajes.java