java.lang.reflect.Method
是否可以通过使用 Java 8 的新方法引用功能来获取实例?
这样我就可以进行编译时检查,并且重构也会更容易。此外,我不需要捕获异常(毕竟不应该抛出)。
java.lang.reflect.Method
是否可以通过使用 Java 8 的新方法引用功能来获取实例?
这样我就可以进行编译时检查,并且重构也会更容易。此外,我不需要捕获异常(毕竟不应该抛出)。
简短的回答:没有。
您将获得该方法的 lambda,而不是java.lang.reflect.Method
. 您不知道方法的名称。就像您不能引用 java bean 的“属性”一样。您可以引用 getter 或 setter,但这也是一个 lambda,您不知道实际名称。在任何情况下,您都必须将名称作为字符串提供,并且编译器无法检查该名称。我也试过这个但失败了。除非您编写一些检查 javacode/字节码的东西,否则它根本无法完成。但是有一些工具可以做到这一点。也许可以使用 Criteria API,但这取决于要求。
http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html
在“元模型”上有一个SingularAttribute
或类似的字段