2014-07-20 80 views
0

是否可以通過使用Java 8的新方法引用功能獲取java.lang.reflect.Method的實例?通過方法引用獲取方法對象

這樣我會有編譯時間檢查和重構也會更容易。另外,我不需要去捕捉異常(畢竟不應該拋出異常)。

回答

1

簡短的回答:第

你會得到這種方法,而不是java.lang.reflect.Method的拉姆達。你不知道方法的名字。就像你不能引用一個java bean的「屬性」一樣。 你可以有一個對吸氣劑或二道過濾器的參考,但這也是一個拉姆達,你不知道實際的名稱。 在任何情況下,您都必須將該名稱作爲字符串提供,並且不能由編譯器進行檢查。我也試過但失敗了。除非您編寫檢查javacode /字節碼的內容,否則無法完成。但有些工具可以做到這一點。 也許可以使用Criteria API,但它取決於需求。 http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html 在那裏你會有一個SingularAttribute或「metamodel」類似的領域,然後普通的java編譯器可以檢查它的(通用)類型。

相關問題