2009-09-24 4 views
0

주어진 객체와 속성 이름이있는 프로그램에서 문제가 발생합니다. 메소드의 반환 유형을 반환하고 싶습니다.Java Generics를 사용하여 새 클래스 만들기

이 솔루션은 메서드의 반환 형식에 일반 정의가없는 한 효과적입니다. 예를 들어 문제의 프로토 타입이 List < 책> getBooks() 인 경우 위 코드는 List < 책 대신 List를 반환합니다. 이 일을 수행 할 수있는 방법이 있습니까? 나는 Generic type을 쉽게 얻을 수있다. 일단 가지고 있으면 그것을 어떻게 처리해야할지 모른다. 사전

+4

모범 사례로, 원본 예외 'e'를 던져 준 RuntimeException의 소스로 포함시키는 것이 좋습니다. 원래 예외에 대한 액세스 권한을 얻는 데는 많은 시간이 필요할 것입니다. 원래 예외가 실제로 잘못되었음을 알리는 예외입니다. 좋은 컨텍스트와 함께 추가 메시지를 제공하지만 :-) – KLE

답변

3

에서

덕분에 getGenericReturnType() 방법을 사용하는 방법의 일반적인 반환 유형을 얻으려면. Type을 반환하고 테스트 한 후 ParameterizedType으로 캐스팅 한 후 형식 매개 변수를 쿼리 할 수 ​​있습니다.

0

리플렉션을 통해 모든 것이 가능하지는 않지만 ObjectWeb ASM과 같은 바이트 코드 라이브러리가 있습니다.

접근법은 this article에 설명되어 있습니다.

관련 문제