Foros del Web » Programación para mayores de 30 ;) » Java »

Creación dinámica de variables, atributos y métodos

Estas en el tema de Creación dinámica de variables, atributos y métodos en el foro de Java en Foros del Web. Hola majetes :) : Quería plantearos una duda muy grande que tengo acerca del poder "dinámico" de Java. En Action Script (y creo que en ...
  #1 (permalink)  
Antiguo 26/05/2005, 05:38
Avatar de Negora  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 5
Creación dinámica de variables, atributos y métodos

Hola majetes :) :

Quería plantearos una duda muy grande que tengo acerca del poder "dinámico" de Java. En Action Script (y creo que en Java Script también, por aquello de que cumplen ambos con la ECMA), no sólo se pueden crear variables en tiempo de ejecución, sino que también es posible añadir atributos y métodos a instancias de clases.

Así, en Action Script, se puede emplear la función "set (nombre, valor)" para crear una variable en tiempo de ejecución, algo que equivaldría a "nombre = valor" en tiempo de compilación. Y si se quiere poder añadir atributos y métodos a una instancia de una clase, basta con añadir el prefijo "dynamic" en la declaración de dicha clase.

Mi duda es si en Java existe algo similar a ambos casos o por el momento no se ha implementado algo semejante (lo cual me extraña mucho, teniendo en cuenta que la norma ECMA bebe de las fuentes de Java). He intentado buscar información en Internet sobre este asunto, pero no he encontrado nada que exactamente esté referido a éso.

Como mucho, he localizado como instanciar una clase u otra de forma dinámica, mediante "Class.forName(nombre_clase).newInstance()" lo cual es una buena noticia, pero no solventa mi problema :/ .

¿Alguien puede resolver mi duda? Muchas gracias :D .
  #2 (permalink)  
Antiguo 26/05/2005, 11:27
 
Fecha de Ingreso: julio-2003
Mensajes: 28
Antigüedad: 20 años, 9 meses
Puntos: 0
.....

Hola,



Primero en java directamente hacerlo, es decir crear variables y metodos dinamicamente no es posible, ya que me imagino que deseas una expresion como eval() en javascript, te sugiero que uses mapas java.util.Map para solventar tu necesidad de creacion de variables, estudialos un poco y veras que utiles resultan. Por lo de los metodos ahi si que es imposible pero hay como emularlo..., exactamente no recuerdo cual es la clase pero es algo como RumTime.. con la que puedes ejecutar comandos en el SO, entonces es cuestion de escribir un archivito .java desde otro metodo que sea la calse con los metodos que necesitas construir compilarlo con Runtime e instanciarlo con ClassForName... y listo podras emular el tema....


Saludos y suerte
__________________
Open Source is my life
  #3 (permalink)  
Antiguo 26/05/2005, 11:37
Avatar de Negora  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 5
Hola Fernando:

Exactamente. Sería como un "eval ()" o un "set ()". Procuraré echarle un vistazo a esa clase que mencionas. No había oido hablar de ella, pero si sirve para lo que quiero, entonces será muy interesante ^_^ .

Por otro lado, esa idea que me comentas para crear clases dinámicamente es genial, aunque es casi lo que ando usando ahora: una clase que "escribe" esos ficheros y luego los compila. De todos modos, visto que tú también has pensado en ello, me doy cuenta de que no es un recurso tan "chapucero" como pensaba y que es igualmente válido.

La verdad es que sería genial que Sun añadiese algo como eso de Action Script en futuras versiones.

Muchas gracias por tu ayuda :) .
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:25.