2013-05-13 1 views

답변

9

Object은 모든 Java 클래스의 기본 클래스입니다. Type은 유형을 나타내는 모든 클래스의 태그 인터페이스 일뿐입니다. java 1.5 이전에는 java.lang.Class을 제외한 java 유형을 나타내는 클래스가 없었기 때문에 1.5 버전에서 도입되었습니다. 그런 다음 제네릭이 도입되었을 때 Class, 일반 배열 등의 일반적인 추상화가 필요했습니다. 그래서 인터페이스 Type을 정의했습니다.

+1

실제로. OP가 놓친 핵심 요소는 모든 클래스가 그 자체가'객체 '라는 것입니다. – Barend

+0

그래서 많은 다른 Object.class가 필요할 때 Type을 사용할 것입니까? –

+0

아니요, 하나를 반환하는 API를 사용할 때'Type'을 사용합니다. 그럴 기회가 없으며 그렇게 할 수있는 방법이 없습니다. – EJP

0

'Object'는 모든 클래스의 수퍼 유형이며 'Class'는 클래스를 정의하는 클래스이고 'Type'은 기본 유형 (int, boolean 등)을 다루는 수퍼 유형입니다.

+0

완전히 잘못되었습니다. Javadoc을 보라. 'Object'는 슈퍼 타입이 아닙니다. 'Type'은 슈퍼 타입이 아니며, 그것은'인터페이스'입니다; 그것은 원시 타입을 포함하지 않는다; Generics에서만 사용됩니다. -1 – EJP

+0

다음은 javadoc이 java.lang.reflect.Type에 대해 말한 내용입니다. "유형은 원시 타입, 매개 변수화 된 유형, 배열 유형, 유형 변수 및 유형을 포함하여 Java 프로그래밍 언어의 모든 유형 **에 대한 공통 수퍼 인터페이스 **입니다. ** 기본 유형 ** ". – javadeveloper

관련 문제