1

我想做这样的事情:

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

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

4

1 回答 1

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;
    }
}
于 2013-08-15T08:15:28.460 回答