如何写一个这样的函数,传入参数为一个对象,然后在这个函数里面就可以打印出这个对象的所有的字段的值!请问这个如何实现啊!今天去看了Java API的class类,没有发现什么可行的方法可以完成这种功能的. 虽然可以在这个对象的类里面实现一个这样的方法: print()
{
system.out.println(this.getFiled());
...........}
来实现打印,可是因为本人比较懒,不想对每一个类都想这样写get函数...请问有这样的简易方法吗?? 还请大侠帮助啊!谢谢啦!
调试欢乐多
private String x;
}public class MainAssist {
public static void main(String[] args) {
Class type = XY.class;
Field[] fields = type.getDeclaredFields();
for (Field field: fields){
System.out.println(field.getName());
}
}
}
Field[] fs=o.getClass().getDeclaredFields();
for(int i=0;i<fs.length;i++){
System.out.println(fs[i].get(o));
}
}}
????????????????
private String x = "1"; private String y = "2"; private String z = "3"; public String getX() {
return x;
} public String getY() {
return y;
} public String getZ() {
return z;
}
}import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;public class MainAssist {
public static void main(String[] args) {
XYZ xyz = new XYZ();
Class type = xyz.getClass();
Method[] methods = type.getMethods();
// Object[] os = null;
for (Method method : methods) {
if (method.getName().matches("get.*") && !method.getName().matches("getClass")) {
try {
System.out.println(method.getName() + ": " + method.invoke(xyz));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}