Java反射:访问getter方法

时间:2016-10-11 11:24:45

标签: java reflection

代码

import java.beans.*
for (PropertyDescriptor pd : Introspector.getBeanInfo(Foo.class).getPropertyDescriptors()) {
    if (pd.getReadMethod() != null && !"class".equals(pd.getName()))
        System.out.println(pd.getReadMethod().invoke(foo));
}

此代码返回类的getter,但我尝试按属性顺序访问getter,我可以将其值设置为。

如何以特定顺序访问getter?

1 个答案:

答案 0 :(得分:0)

定义类,然后在实例中获取所有方法然后使用流来仅过滤getter

public class Pint {

    private int x;
    private int y;
    private int z;

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public int getZ() {
        return z;
    }

然后

 Arrays.stream(p.getClass().getDeclaredMethods()).filter(x -> x.getName().contains("get")).forEach(System.out::println);