>Java >java지도 시간 >Java에서 일반 유형에 대한 클래스 리터럴을 어떻게 얻을 수 있습니까?

Java에서 일반 유형에 대한 클래스 리터럴을 어떻게 얻을 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-23 22:27:151003검색

How Can I Get a Class Literal for a Generic Type in Java?

Java의 일반 유형에서 클래스 리터럴 가져오기

클래스 리터럴은 일반적으로 유형을 정적으로 표현하는 데 사용됩니다. 그러나 제네릭 유형을 처리할 때 어려움이 발생합니다.

일반적으로 제네릭이 아닌 유형의 경우 Foo.class 구문을 사용하여 클래스 리터럴을 얻을 수 있습니다. 이를 List와 같은 제네릭 유형에 적용하면 유형 매개변수가 없기 때문에 경고가 발생합니다. 알 수 없는 유형 매개변수를 허용하기 위해 와일드카드(?)를 추가하려고 하면 유형 불일치 오류가 발생합니다. 또한 List.class 구문을 사용하면 구문 오류가 발생합니다.

이 문제는 Java의 유형 삭제 기능에서 발생합니다. 제네릭 유형은 컴파일 중에 원시 유형으로 변환됩니다. 즉 해당 유형 인수가 런타임에 손실됩니다. 결과적으로 매개변수화된 유형에는 자체 런타임 표현이 부족하고 해당 클래스 객체가 없습니다.

따라서 List와 같은 매개변수화된 유형에 대한 클래스 리터럴을 얻는 것은 불가능합니다. List.class와 같은 메소드를 사용합니다. 이는 Java가 컴파일 중에 일반 유형 정보를 제거하고 원시 유형 표현만 남기기 때문입니다.

위 내용은 Java에서 일반 유형에 대한 클래스 리터럴을 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.