gpt4 book ai didi

java - 如何在java中动态读取对象属性?

转载 作者:搜寻专家 更新时间:2023-10-30 21:19:36 26 4
gpt4 key购买 nike

有没有办法动态读取和打印对象属性(Java)?例如,如果我有以下对象

public class A{
int age ;
String name;
float income;

}

public class B{
int age;
String name;
}

public class mainA{
A obj1 = new A();
method(A);
method(B);
}

the output should be like

While running method(A):
Attribute of Object are age,name,income;
While executing method(B):
Attribute of Objects are age,name;

我的问题是我可以在 method() 中传递各种对象,有什么方法可以访问不同对象的属性。

最佳答案

您想使用 The Reflection API .具体看discovering class members .

您可以执行以下操作:

public void showFields(Object o) {
Class<?> clazz = o.getClass();

for(Field field : clazz.getDeclaredFields()) {
//you can also use .toGenericString() instead of .getName(). This will
//give you the type information as well.

System.out.println(field.getName());
}
}

我只是想添加一个警示说明,您通常不需要做任何这样的事情,而且对于大多数事情您可能不应该。反射会使代码难以维护和阅读。当然,在某些特定情况下您会想要使用反射,但这些情况相对较少。

关于java - 如何在java中动态读取对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7746158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com