Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/01/2009, 16:48
Avatar de SPAWN3000
SPAWN3000
 
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: Esto se puede hacer...

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,

En su forma mas básica sería algo así:

Código:
import java.lang.reflect.*;

public class Proc {

  public enum Procs { A, B }
  
  private void invoke(Procs p) {
    try {
      Class c = Class.forName("Proc");
      Object t = c.newInstance();
      Method m = c.getDeclaredMethod(p.name());
      m.setAccessible(true);
      m.invoke(t);
    } catch (Exception e) {
      System.err.println(e);
    }
  }
  
  private void A() {
    System.out.println("Function A");
  }
  
  private void B() {
    System.out.println("Function B");
  }
  
  public static void main(String[] args) {
    Proc p = new Proc();
      p.invoke(Procs.A);
  }
  
}
http://java.sun.com/docs/books/tutor...ect/index.html
http://java.sun.com/javase/6/docs/ap...e-summary.html

En mi opinión personal, Reflection se usa cuando no hay otra forma de conocer los métodos existentes de una clase, por ejemplo, cuando se crea un programa que se puede extender por medio de plug-ins (Java Beans), pero en la mayoría de los casos es preferible evitarlo y usar programación estándard.

Saludos,
Ohhh, se fajaron... Hack y GreenEyed. Naturalmente lo que buscaba basto con el termino reflect, ya que si conocerlo es difícil que Mr. google nos apunte ha informacion de interés y nos la podemos pasar horas intentando infructuosamente.

Y precisamente es para plug-ins y (Java beans), muchas veces cuando comienzas algo con poco conocimiento y te resultan ideas, que cuando descubres alguien mas a pensado exactamente lo
mismo, lo ha echo y se piensa... sera que tengo tan poca imaginación?.

Gracias...

Última edición por SPAWN3000; 26/01/2009 a las 17:01