런타임시 제네릭이 사용하는 개체 유형을 어떻게 결정할 수 있습니까?일반이란 무엇입니까? 런타임시 제네릭 형식을 얻는 방법
답변
먼저 우리는 Oracle's documentation에서 자바에서 일반
자바 5에 추가 된 중요한 기능 중 하나입니다 일반 무엇 ,
설명 :
지금 방법이 링크의 도움으로, 런타임에 제네릭 형식을 얻을 수 있도록하는제네릭 자바에 소개되었다 더 엄격한 유형을 제공하는 언어 은 컴파일 타임에 검사하고 일반 프로그래밍을 지원합니다. 유형 매개 변수를 억제 할 경우 자신의 경계 또는 객체와 제네릭 형식의 모든 유형 매개 변수를 교체
: 제네릭을 구현하기 위해, 자바 컴파일러에 형의 삭제를 적용합니다. 따라서 생성 된 바이트 코드 에는 일반 클래스, 인터페이스 및 메서드 만 포함됩니다.
유형 안전을 유지하기 위해 필요한 경우 삽입하십시오.
- 확장 된 제네릭 형식에서 다형성을 보존하기 위해 브리지 메서드를 생성합니다.
유형의 삭제는 새로운 클래스가 매개 변수 유형에 대해 생성되지 않도록 보장; 결과적으로 제네릭은 런타임 오버 헤드를 발생시키지 않습니다.
읽기 : http://www.west-wind.com/weblog/posts/2011/Nov/11/Dynamically-creating-a-Generic-Type-at-Runtime
type erasure으로 인해 일반 개체 인스턴스의 실제 형식 매개 변수를 확인할 수 없습니다. 당신이 할 수있는 최선의 방법은 실제 객체를 알아야하는 코드에 클래스 객체를 전달할 수 있도록 설정하는 것입니다. 예를 들어, 다음은 java.util.EnumMap
이 해당 생성자 중 하나에서 수행하는 작업입니다.
는 List<T>
의 T
자바 type erasure를 사용하기 때문에 (예를 들면), 당신이 할 수없는 것을 의미합니다. 런타임에 일 경우 List<T>
은 List
처럼 보입니다. 익명 클래스의 가장자리 경우를 제외하고는 사실입니다. jump through hoops을 사용하면 매개 변수 유형을 찾을 수 있습니다. 그러나 일반적인 경우에는 할 수 없습니다. 일반적으로 해당 정보를 별도로 전달해야합니다.
런타임에 "Generics"의 개체 유형을 가져올 수 없습니다. object.getclass()를 사용하면 클래스 이름을 가진 클래스의 객체를 얻을 수 있습니다.
- 1. 런타임시 제네릭 유형을 해결하는 방법
- 2. Java generics : 메소드에서 제네릭 형식을 얻는 방법?
- 3. 제네릭 형식을 추론하도록 C# 컴파일러를 얻는 방법?
- 4. 런타임시 Ada 제네릭
- 5. 런타임시 struts.multipart.maxSize를 얻는 방법
- 6. 제네릭 형식을 지정하는 방법은 다른 제네릭 형식을 구현해야합니까?
- 7. 전체 모음 대신 단일 제네릭 형식을 얻는 방법
- 8. 문자열 형식을 사용하여 얻는 방법 %
- 9. 제네릭 목록이 런타임시 XAML에 비어있는 이유는 무엇입니까?
- 10. 런타임시 클래스 객체로 제네릭 형식 정의
- 11. 제네릭 클래스에 제네릭 컬렉션 형식을 지정하려면 어떻게합니까?
- 12. 제네릭 형식을 가진 제네릭 개체를 반환하려면 어떻게해야합니까?
- 13. 다른 지정된 제네릭 형식을 기반으로 제네릭 형식을 추론하고이를 사용하십시오
- 14. 런타임시 객체를 제네릭 유형으로 캐스팅합니다.
- 15. vb.net은 제네릭 형식을 비교합니다.
- 16. 제네릭 클래스 내에서 개체의 제네릭 형식을 반환하는 방법?
- 17. 한계가있는 제네릭 형식을 다른 제한된 제네릭 형식으로 확장하는 방법은 무엇입니까?
- 18. 런타임시 JFormattedTextField의 형식을 변경하는 방법은 무엇입니까?
- 19. Java의 메서드에서 제네릭 형식을 반환하는 방법
- 20. 어셈블리 언어로 제네릭 형식을 나타내는 방법
- 21. Java에서 인스턴스의 제네릭 형식을 동적으로 선언하는 방법
- 22. Infragistics XamDataTree와 함께 제네릭 형식을 사용하는 방법
- 23. 제네릭 형식을 포함하는 배열을 선언하는 방법?
- 24. C# 제네릭 형식을 다른 클래스에 전달하는 방법
- 25. MongoDB C# 드라이버로 제네릭 형식을 업데이트하는 방법
- 26. SimpleInjector에서 생성자로 제네릭 형식을 등록하는 방법?
- 27. 메서드 인터페이스에서 제네릭 형식을 반환하는 방법
- 28. 어셈블리에서 제네릭 형식을 추출하는 방법은 무엇입니까?
- 29. 함수 옆에 제네릭 형식을 넣는 이유는 무엇입니까?
- 30. params가 제네릭 형식을 허용하지 않는 이유는 무엇입니까?
확인이 질문에. http://stackoverflow.com/questions/4837190/java-generics-get-class – Tiago
간단한 답 : 알 수 없습니다. –