gpt4 book ai didi

java - 如何迭代类成员?

转载 作者:IT老高 更新时间:2023-10-28 21:04:38 25 4
gpt4 key购买 nike

我使用的是 Java 版本的 Google App Engine。

我想创建一个可以接收多种类型对象作为参数的函数。我想打印出对象的成员变量。每个对象可能不同,并且该功能必须适用于所有对象。我必须使用反射吗?如果是这样,我需要编写什么样的代码?

public class dataOrganization {
private String name;
private String contact;
private PostalAddress address;

public dataOrganization(){}
}

public int getObject(Object obj){
// This function prints out the name of every
// member of the object, the type and the value
// In this example, it would print out "name - String - null",
// "contact - String - null" and "address - PostalAddress - null"
}

我将如何编写函数 getObject?

最佳答案

是的,你确实需要反射(reflection)。它会是这样的:

public static void getObject(Object obj) {
for (Field field : obj.getClass().getDeclaredFields()) {
//field.setAccessible(true); // if you want to modify private fields
System.out.println(field.getName()
+ " - " + field.getType()
+ " - " + field.get(obj));
}
}

(正如 ceving 所指出的,该方法现在应该声明为 void 因为它不返回任何内容,并且声明为 static 因为它不使用任何实例变量或方法。)

reflection tutorial了解更多。

关于java - 如何迭代类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2466038/

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