Подтвердить что ты не робот

Как перебирать членов класса?

Я использую 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?

4b9b3361

Ответ 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));
    }
}

Подробнее см. учебник по отражению.