リフレクションを使用してそれらにアクセスできます。Reflectionは、名前だけでなく、たとえばフィールドが保持する値も返します。
簡単な例は、次のコードで取得できます。
import java.lang.reflect.Field;
public class ReflectionTest {
public static void main(final String[] args) throws Exception {
Object obj = new Person("Person Name", 20);
for (Field f : obj.getClass().getDeclaredFields()) {
f.setAccessible(true);
System.out.println(f.getName() + " = " + f.get(obj));
}
}
public static class Person {
private final String name;
private final int age;
public Person(final String name, final int age) {
super();
this.name = name;
this.age = age;
}
}
}
このコードは次のように出力されます。
name = Person Name
age = 20
ご覧のとおり、各フィールドの値にはメソッドを使用してアクセスしますField.get(Object)
。詳細については、こちらをご覧ください。