2013-05-13 10 views

Odpowiedz

9

Object to klasa bazowa dla wszystkich klas java. Type to tylko interfejs znaczników dla wszystkich klas reprezentujących typy. Został on wprowadzony w java 1.5, ponieważ przed wersją java 1.5 nie było klas reprezentujących typ java z wyjątkiem java.lang.Class. Następnie, gdy wprowadzono generyczne, istniała potrzeba stworzenia ogólnej ogólnej abstrakcji wspólnej dla Class, ogólnej tablicy itp. Tak więc zdefiniowali interfejs Type.

+1

Rzeczywiście. Kluczową rzeczą, którą OP mógł pominąć, jest to, że każda "Klasa" sama jest "Obiektem". – Barend

+0

Więc użyłbym typu, gdy potrzebuję wielu różnych klasy Object.class? –

+0

Nie, użyłbyś 'Type', gdy używasz API, który zwraca jeden. Nie ma innej okazji, aby to zrobić, a nawet nie ma innego sposobu, aby to zrobić. – EJP

0

"Obiekt" jest nadrzędnym dla wszystkich klas, "Klasa" to klasa definiująca klasę, a "Typ" to nadtyp, który obejmuje również typy pierwotne (int, boolean, itp.).

+0

Niepoprawnie. Zobacz Javadoc. 'Obiekt' nie jest nadtypem. 'Typ' również nie jest nadtypem, jest to' interfejs'; nie obejmuje typów pierwotnych; i jest używany tylko w Generics. -1 – EJP

+0

Oto, co javadoc mówi o java.lang.reflect.Type: "Typ jest wspólnym superinterface ** dla wszystkich typów ** w języku programowania Java, w tym typy surowe, typy parametryzowane, typy tablic, zmienne typu i ** typy pierwotne ** ". – javadeveloper

Powiązane problemy