如何获取返回类成员的方法?

时间:2015-01-04 21:42:48

标签: java class object methods

我想知道我是否可以获得返回类成员的方法。

例如,我在这个类中有一个名为Person的类,有两个成员nameage,在这个类中我有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();也返回方法的返回类型。

但是我需要的是获取返回两个变量nameage的方法。在这种情况下,方法是public String getName()和{{1 }}

我该怎么办?

1 个答案:

答案 0 :(得分:1)

在您的班级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