2014-07-20 3 views
0

Java 8의 새로운 메소드 참조 기능을 사용하여 java.lang.reflect.Method의 인스턴스를 가져올 수 있습니까?메소드 참조가있는 메소드 객체 얻기

그런 식으로 컴파일 시간을 확인하고 리팩토링하는 것이 더 쉽습니다. 또한 예외를 잡을 필요가 없습니다 (결국 throw되지 않아야 함).

답변

1

짧은 답변 : 제

당신은 그 방법이 아닌 java.lang.reflect.Method의 람다를 얻을 것이다. 당신은 방법의 이름을 모른다. 자바 빈의 "속성"에 대한 참조를 가질 수 없듯이. getter 또는 setter에 대한 참조를 가질 수는 있지만 람다이기 때문에 실제 이름을 알 수 없습니다. 어쨌든 String으로 이름을 제공해야하며 컴파일러에서 확인할 수 없습니다. 나는 또한 이것을 시도했지만 실패했다. javacode/bytecode를 검사하는 무언가를 작성하지 않으면 단순히 수행 할 수 없습니다. 하지만 그렇게하는 도구가 있습니다. 아마도 Criteria API를 사용할 수 있지만 요구 사항에 따라 다릅니다. http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html "metamodel"에 SingularAttribute 또는 이와 유사한 필드가 있으면 일반 Java 컴파일러에서 해당 유형을 확인할 수 있습니다.