求一个能打印任何类成员变量的java程序

其实就是想知道怎样提取一个自定义类的信息。就是提供一个方法,传入值是Object,然后打印出他所有的成员变量。... 其实就是想知道怎样提取一个自定义类的信息。就是提供一个方法,传入值是Object,然后打印出他所有的成员变量。 展开
 我来答
bellCliff
推荐于2016-10-05 · TA获得超过650个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:612万
展开全部
public void printMethod(Object obj) throws Exception{
//获取这个对象的定义类
Class cz = obj.getClass();
//获取类的变量成员列表,注意,这个地方还有一个getDeclaredField方法,具体区别参见javadoc
for(java.lang.reflect.Field f : cz.getFields()){
//获取变量的值,当然你也可以获取变量的名字
Object value = f.get(obj);
System.out.println(value);
}
}
追问
getDeclaredFields在打印private变量时会抛异常,请问要怎么解决呢?
追答
f.setAccessible(true)
near_sun
2012-09-28 · 超过11用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:30.4万
展开全部
1:用java的反射。api有那个文档。
2:用阿帕奇的那个beanuntil那个工具包(也是基于java反射做的,但是封装好了,比较方便)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kinken_J
2012-09-28
知道答主
回答量:12
采纳率:0%
帮助的人:4.3万
展开全部
可以考虑用反射

Class类中有方法:
public Field[] getDeclaredFields() throws SecurityException

返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段。包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。 返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何字段,或者此 Class 对象表示一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。

参考资料: jdk

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kevin6Tang
2012-10-09 · 超过23用户采纳过TA的回答
知道答主
回答量:219
采纳率:0%
帮助的人:49.8万
展开全部
修改toString方法呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd07440321
2012-10-05 · TA获得超过102个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:64万
展开全部
用集合啊,再把它迭代出来啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式