java对打印对象属性的内省
我抓取了这段代码:
ClassABC abc = new ClassABC();
for (Field field : abc.getClass().getDeclaredFields()) {
field.setAccessible(true);
String name = field.getName();
Object value = field.get(abc);
System.out.printf("Field name: %s, Field value: %s%n", name, value);
}
然而,我希望能够从活动对象而不是类中获取属性。我知道我需要反省我只是不知道如何从活的物体上抓取
# 1 楼答案
“活动”对象是某个类的实例,该类将确定该对象具有哪些字段。你问题中的代码正符合你的要求
(Java不允许您动态地向对象添加新字段/属性……比如Javascript、Python、Ruby等语言。)
# 2 楼答案
这是:
从abc引用的实例化对象中获取值
您只能内省类,然后使用提供的字段和方法与实例化的对象进行交互
# 3 楼答案
在上面的声明中,您创建了类ClassABC的对象
field.get(abc)
将返回对象abc
的字段值。通过这种方式,您可以在运行时对对象属性的值进行内省#Field.get()