如何获取return class 成员的方法?

How to get the methods that return the class members?

我想知道我是否可以得到returnclass个成员的方法。

例如我有一个名为 Person 的 class 在这个 class 里面有两个成员是 nameage 并且在这个 class 我有以下 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(); 它 return 在此 class 中声明的所有方法以及 Person.class.getDeclaredMethods()[0].getReturnType(); return return 方法的类型。

但是我需要的是获取return两个变量nameage的方法,在这种情况下是方法是 public String getName()public int getAge().

我能做什么?

您的 class nameage 不是 全局的。他们需要在他们之前有一个 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