如何在引用myBean.getId()时获取java.lang.reflect.Field

时间:2013-08-15 08:10:49

标签: java reflection

我想做这样的事情:

public myMethod(Object expectedValue) {
  java.lang.reflect.Method method = new Method(expectedValue);
  System.out.println(method.getName());
}

如何在不引入字符串耦合(指定getter名称)的情况下从getter本身获取方法引用?

1 个答案:

答案 0 :(得分:2)

不知道我是否理解你的问题,但在下面你会找到你可以使用反射从对象调用getter的代码。 Afaik,没有参考其名称就无法获得方法。

public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {

    Foo foo = new Foo();
    foo.setBla("i am bla");

    Method blaGetter = Foo.class.getMethod("getBla");
    System.err.println(blaGetter.invoke(foo));

}

private static class Foo {

    private String bla;

    public String getBla() {
        return bla;
    }

    public void setBla(String bla) {
        this.bla = bla;
    }
}