Как перебирать членов класса?
Я использую 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?
Ответы
Ответ 1
Да, вам нужно размышление. Это будет выглядеть примерно так:
public int 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));
}
}
Подробнее см. учебник по отражению.