我想知道我是否可以获得返回类成员的方法。
例如,我在这个类中有一个名为Person
的类,有两个成员name
和age
,在这个类中我有4个方法如下:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
因此,如果我使用方法Person.class.getDeclaredMethods();
,它将返回在此类中声明的所有方法,并且Person.class.getDeclaredMethods()[0].getReturnType();
也返回方法的返回类型。
但是我需要的是获取返回两个变量name
和age
的方法。在这种情况下,方法是public String getName()
和{{1 }}
我该怎么办?
答案 0 :(得分:1)
在您的班级name
和age
不是全球。他们需要在他们之前有一个static
才能成为全球性的。为了使用实例和反射访问您的字段,您可以执行类似
public static void main(String args[]) {
Person p = new Person("Elliott", 37);
Field[] fields = p.getClass().getDeclaredFields();
for (Field f : fields) {
try {
f.setAccessible(true);
String name = f.getName();
String val = f.get(p).toString();
System.out.printf("%s = %s%n", name, val);
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出(正如我所料)
name = Elliott
age = 37