Javaがjava.lang.reflect.Type
である理由を誰かが教えてくれることを願っていました。すべてがObject
から既に継承されていますか?Objectが既に存在する場合、javaにTypeがあるのはなぜですか?
誰かが、Object
ではなくType
を使用する必要がある場合の例を挙げてください。
Javaがjava.lang.reflect.Type
である理由を誰かが教えてくれることを願っていました。すべてがObject
から既に継承されていますか?Objectが既に存在する場合、javaにTypeがあるのはなぜですか?
誰かが、Object
ではなくType
を使用する必要がある場合の例を挙げてください。
Object
は、すべてのJavaクラスの基本クラスです。 Type
は、型を表すすべてのクラスのタグインターフェイスです。 java 1.5以前では、java.lang.Class
以外のJavaタイプを表すクラスが存在しなかったので、これはjava 1.5で導入されました。その後、ジェネリックが導入されたときには、Class
、ジェネリックアレイなどに共通の一般的な抽象化を作成する必要がありました。そこで、インタフェースType
を定義しました。
'Object'はすべてのクラスのスーパータイプ、 'Class'はクラスを定義するクラス、 'Type'はプリミティブ型(int、booleanなど)をカバーするスーパータイプです。
完全に間違っています。 Javadocを参照してください。 'Object'はスーパータイプではありません。 'Type'はスーパータイプでもなく、' interface'です。プリミティブ型はカバーしません。 Generics専用です。 -1 – EJP
javadocがjava.lang.reflect.Typeについて述べていることは、次のとおりです。「タイプは、Javaプログラミング言語のすべてのタイプの共通スーパーインタフェース**です。これらには、生の型、パラメータ化された型、配列の型、型変数、 **プリミティブ型** " – javadeveloper
実際。 OPが見逃すかもしれない重要なことは、すべての「クラス」自体が「オブジェクト」であるということです。 – Barend
だから、私は多くの異なるObject.classを持つ必要があるときにタイプを使用しますか? –
いいえ、1つを返すAPIを使用する場合は、 'Type'を使用します。これを行う他の機会はありませんし、他の方法もありません。 – EJP