아니, 당신은 정확한 매개 변수를 예상에 대한 검색 방법. 따라서 리플렉션 API의 찾기/검색 메소드를 사용하여 생성자, 메소드 또는 필드를 찾을 때 API는 equals()
을 사용하여 일치하는 항목을 찾습니다.
Java 컴파일러에서 사용할 논리가 필요한 경우 FEST Reflect 또는 commons beanutils과 같은 프레임 워크를 사용해야합니다. 또는 getConstructors()
에 전화하고 자신의 필터 코드를 작성해야합니다.
언뜻보기에 이것은 바보처럼 보입니다. Java 컴파일러가이를 수행 할 수 있다면 왜 Reflection API를 사용할 수 없습니까? 두 가지 이유가 있습니다. 첫째, Java 런타임은 컴파일러가 이미 올바른 메서드를 선택했기 때문에 호출 할 메서드를 검색 할 필요가 없습니다.
두 번째 이유는 Reflection API가 항상 "second best"였기 때문입니다. 모든 것을 할 수는 있지만 목표는 사용하기가 쉽지 않거나 친숙하지 않게 만드는 것이 었습니다. (적어도 내가 생각할 때마다 그것을 사용하는 것이 좋습니다 .-))
무엇'B.class.getConstructors 사용에 대한
시도 정확히 하나의 인수를 취하는 것들을 찾고,'A.class'''가'thisAssignableFrom'이 아닌지 확인하십시오. –
은 B의 생성자 공개입니까? –
arne.b이 방법을 사용하는 한 가지 방법이지만 실제로 더 쉽다고 생각했습니다. Nandkumar 예, 공개입니다. –