问高手们一个问题!关于打印一个对象的所有字段值的问题!

loveyou1234 2006-03-30 04:56:33

如何写一个这样的函数,传入参数为一个对象,然后在这个函数里面就可以打印出这个对象的所有的字段的值!请问这个如何实现啊!今天去看了Java API的class类,没有发现什么可行的方法可以完成这种功能的.

虽然可以在这个对象的类里面实现一个这样的方法:

print()
{
system.out.println(this.getFiled());
...........

}
来实现打印,可是因为本人比较懒,不想对每一个类都想这样写get函数...请问有这样的简易方法吗??

还请大侠帮助啊!谢谢啦!
...全文
143 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveyou1234 2006-03-30
  • 打赏
  • 举报
回复
好了.谢谢各位大侠啦..

尤其是:rcom10002(KNIGHTRCOM) ( ) 信誉:100

谢谢你啦.你的方法可以!同时也感谢各位关注此帖的大侠:shenpipi(皮皮),hemiao_1993(冷血动物) 等.
loveyou1234 2006-03-30
  • 打赏
  • 举报
回复
呵呵..没问题,我自己把它转成一个for循环吧!
loveyou1234 2006-03-30
  • 打赏
  • 举报
回复
for (Method method : methods)

在1.4那里是不能用的啊?请问大侠怎么用啊??
dztc 2006-03-30
  • 打赏
  • 举报
回复
mark
zx2002027 2006-03-30
  • 打赏
  • 举报
回复
学习
rcom10002 2006-03-30
  • 打赏
  • 举报
回复
public class XYZ {
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();
}
}
}
}
}
boyu_song 2006-03-30
  • 打赏
  • 举报
回复
for (Field field: fields){
????????????????
shenpipi 2006-03-30
  • 打赏
  • 举报
回复
public class PrintUtil {

public static void print(Object o) throws IllegalArgumentException, IllegalAccessException{
Field[] fs=o.getClass().getDeclaredFields();
for(int i=0;i<fs.length;i++){
System.out.println(fs[i].get(o));
}
}

}
rcom10002 2006-03-30
  • 打赏
  • 举报
回复
import java.lang.reflect.Field;

class XY{
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());
}
}
}
hemiao_1993 2006-03-30
  • 打赏
  • 举报
回复
在这个对象里面加一个toString()方法, 在toString()里面写打印所有字段的语句, 然后对可以直接打印这个对象了.

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧