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

Como crear una variable dinamica en java????

Estas en el tema de Como crear una variable dinamica en java???? en el foro de Java en Foros del Web. La idea es crear un variable a partir de una cadena, no se si podra, pero agradesco cualquier ayuda. //cadena string con "Str" String s ...
  #1 (permalink)  
Antiguo 28/10/2010, 14:19
 
Fecha de Ingreso: enero-2009
Mensajes: 31
Antigüedad: 15 años, 2 meses
Puntos: 0
Como crear una variable dinamica en java????

La idea es crear un variable a partir de una cadena, no se si podra, pero agradesco cualquier ayuda.


//cadena string con "Str"
String s = "Str";

//concatenar con "ing". La idea es que cree la variable String a = "cadenaDinamica";
s.concat("ing") a = "cadenaDinamica";

//Como parte final q imprima "cadenaDinamica"
System.out.println(a);
  #2 (permalink)  
Antiguo 29/10/2010, 01:25
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Como crear una variable dinamica en java????

No, no se puede, el resultado de esto:

//concatenar con "ing". La idea es que cree la variable String a = "cadenaDinamica";
s.concat("ing") a = "cadenaDinamica";

Sería:

"String" a = "cadenaDinamica";

Y no:

String a = "cadenaDinamica"; // que es lo que buscas en definitiva

Java funciona con tipos de datos primitivos y objetos. Como bien explica este enlace: http://es.wikipedia.org/wiki/Lenguaj...temente_tipado se trata de un lenguaje fuertemente tipado, por lo que es necesario definir previamente de qué tipo es la variable que se tiene.

Para transformar una variable dinámicamente en otra se utiliza lo que se denomina "Casting" o invocación, que es una conversión entre tipos de datos, siempre que esto sea posible.

Así: tu puedes convertir un int a = 4; en String b = "4";, pero no puedes convertir un String c = "cuatro" en int d = 4 (al menos no directamente salvo que crees propiamente un método que reconozca la palabra y la transforme en el número equivalente). Así mismo puedes castear a objetos de clases hijas a partir de un objeto de una clase padre, pero no al revés.

:/ espero que te sirva. La verdad no sé que pretendías hacer con eso que planteabas.
  #3 (permalink)  
Antiguo 29/10/2010, 11:42
 
Fecha de Ingreso: enero-2009
Mensajes: 31
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Como crear una variable dinamica en java????

gracias por la respuesta.

De pronto te aclaro un poco mas con este ejemplo lo que quería hacer en java.
En el anterior ejemplo tenia separado "Str" y "ing" y queria unir esos dos para crear esto.

String a = "cadena";


En otro ejemplo mas claro seria:
Tengo estas clases:


UnaClase
DosClase
TresClase


y quiero hacer esto:


/**
*El parametro de entrada clase recibe la palabra Uno, Dos, o Tres.
*/
public void metodo(String clase){

clase.concat("Clase") a = new clase.concat("Clase") ;

}


Busco instanciar las clases dinamicamente segun el valor q tome la variable clase.
Es algo que no se si se puede hacer con java de alguna manera.
  #4 (permalink)  
Antiguo 29/10/2010, 13:03
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Como crear una variable dinamica en java????

Existen métodos para eso

http://download.oracle.com/javase/tu...ect/index.html

pero es complicarse la vida para quien está empezando en Java, y como existen muchas alternativas para no llegar a utilizarlo (herencias, polimorfismo, genéricos), probablemente estés tratando de resolver un problema de una forma no muy recomendable.

Si no tienes otra alternativa, usa

Class.forName() o ClassLoader()

http://download.oracle.com/javase/tu.../classNew.html

pero no vas a poder referenciar los objetos con la misma variable (salvo polimorfismo).
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Última edición por Xerelo; 29/10/2010 a las 13:12

Etiquetas: dinamica, variables
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




La zona horaria es GMT -6. Ahora son las 20:38.