使用方法引用获取方法对象

时间:2014-07-20 18:38:55

标签: java-8 method-reference

是否可以通过使用Java 8的新方法引用功能获取java.lang.reflect.Method的实例?

这样我就可以进行编译时检查,重构也会更容易。此外,我不需要捕获异常(毕竟不应该抛出异常)。

1 个答案:

答案 0 :(得分:1)

简短回答:不。

您将获得该方法的lambda,而不是java.lang.reflect.Method。您不知道方法的名称。正如你不能引用"属性"一个java bean。 您可以引用getter或setter,但这也是lambda,您不知道实际名称。 在任何情况下,您都必须提供名称作为字符串,并且不能由编译器检查。我也试过这个,但失败了。除非你写一些检查javacode /字节码的内容,否则它根本无法完成。但是有一些工具可以做到这一点。 也许Criteria API可以用于此,但它取决于要求。 http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html 您在"元模型"上有SingularAttribute或类似字段。然后常规的java编译器可以检查它的(泛型)类型。