2013-05-13 10 views

答えて

9

Objectは、すべてのJavaクラスの基本クラスです。 Typeは、型を表すすべてのクラスのタグインターフェイスです。 java 1.5以前では、java.lang.Class以外のJavaタイプを表すクラスが存在しなかったので、これはjava 1.5で導入されました。その後、ジェネリックが導入されたときには、Class、ジェネリックアレイなどに共通の一般的な抽象化を作成する必要がありました。そこで、インタフェースTypeを定義しました。

+1

実際。 OPが見逃すかもしれない重要なことは、すべての「クラス」自体が「オブジェクト」であるということです。 – Barend

+0

だから、私は多くの異なるObject.classを持つ必要があるときにタイプを使用しますか? –

+0

いいえ、1つを返すAPIを使用する場合は、 'Type'を使用します。これを行う他の機会はありませんし、他の方法もありません。 – EJP

0

'Object'はすべてのクラスのスーパータイプ、 'Class'はクラスを定義するクラス、 'Type'はプリミティブ型(int、booleanなど)をカバーするスーパータイプです。

+0

完全に間違っています。 Javadocを参照してください。 'Object'はスーパータイプではありません。 'Type'はスーパータイプでもなく、' interface'です。プリミティブ型はカバーしません。 Generics専用です。 -1 – EJP

+0

javadocがjava.lang.reflect.Typeについて述べていることは、次のとおりです。「タイプは、Javaプログラミング言語のすべてのタイプの共通スーパーインタフェース**です。これらには、生の型、パラメータ化された型、配列の型、型変数、 **プリミティブ型** " – javadeveloper

関連する問題