Java - TSU

 
Vista:

TSU

Publicado por Proteo (3 intervenciones) el 23/02/2009 15:36:26
Hola,

Buenas, estoy en un proyecto y no he podido resolver un problema. La cuestión es que estoy haciendo un método el cual me guarde en una variable String el"" Nombre de las Variables de una Clase y su valor, obviamente no quiero tener que escribir todas las variables y sus valores ya que pretendo que este método sea dinámico y funcione para cualquier clase.

Hasta ahora solo llevo algo así de código, pero esto solo me da los nombres de las variables pero no se como sacar su valor alguien tendrá alguna respuesta o sugerencia?

String s = " ";
for (int j = 1; j <= 80; j++) {
s = s + "=";
}
s = s + " ";
s = s + "Valores de las variables globales ";
for (int j = 1; j <= 80; j++) {
s = s + "=";
}
s = s + " ";
try {
Class clase = Class.forName(Main.class.getName());
Field m[] = clase.getFields();
for (int j = 0; j < m.length; j++) {
s = s + m[j].toString() + "= ";
s = s + " ";
}
for (int j = 1; j <= 80; j++) {
s = s + "=";
}
s = s + " ";
} catch (Exception ee) {
System.out.println("----------------------->" + ee.toString());
}

System.out.println(s);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:TSU

Publicado por Tom (1831 intervenciones) el 24/02/2009 08:57:33
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Field.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TSU

Publicado por Proteo (3 intervenciones) el 24/02/2009 18:14:25
Muchas Gracias Tom demonios ya habia dado una ojeada a eso y no lo habia visto que bueno que me contestaste e hiciste que lo viera nuevamente ahora pongo el codigo completo asi pues si alguien le sirve pues mejor chao.

Lo unico es que solo he hecho que funcione para variables estaticas.

String strMensaje = "";
for (Integer intContador = 1; intContador <= 80; intContador++) {
strMensaje = strMensaje + "=";
}
strMensaje = strMensaje + " Valores de las variables globales ";
for (Integer intContador = 1; intContador <= 80; intContador++) {
strMensaje = strMensaje + "=";
}
strMensaje = strMensaje + " ";
try {
Class clsNombreClase = Class.forName(MiClase.class.getName());
Field fldVarClase[] = clsNombreClase.getFields();
for (Integer intContador = 0; intContador < fldVarClase.length; intContador++) {
strMensaje = strMensaje + fldVarClase[intContador].toString().substring(fldVarClase[intContador].toString().indexOf(MiClase.class.getName()) + 7) + "= " + fldVarClase[intContador].get(null);
strMensaje = strMensaje + " ";
}
for (Integer intContador = 1; intContador <= 80; intContador++) {
strMensaje = strMensaje + "=";
}
strMensaje = strMensaje + " ";
} catch (ClassNotFoundException exhClassNotFound) {
//Mensaje de error
} catch (IllegalAccessException exhIllegalAccess) {
//Mensaje de Error
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar