ホームページ  >  に質問  >  本文

Java ジェネリック クラスについての少しの疑問

class Gift<T>{...} として定義されたクラスがあります。
新しい ギフト オブジェクト (ギフト<など) を作成すると、 Phone> ; my Gift = new Gift<Phone>
my Gift オブジェクトのタイプは何ですか? Gift、Phone、または Object ですか?
あるブログで次の文章を読みました。 オブジェクトをインスタンス化するとき、ジェネリックを指定しない場合、デフォルトは Object ですが、ジェネリックを指定しない場合はすべきではありませんデフォルトはギフトですか?

習慣沉默習慣沉默2685日前564

全員に返信(3)返信します

  • PHPz

    PHPz2017-05-17 10:05:19

    <T> これは単なるジェネリック宣言です。 Gift<T> これは、Java では最初に宣言してから呼び出すという原則に従っているため、特定のタイプを宣言する必要があることを意味します。 Tを使用する前にTを使用します。my Giftの型は関係ありません。Tの型が何であっても、myギフトはギフトというクラスのオブジェクトです。
    ぜひ採用してください!

    返事
    0
  • 滿天的星座

    滿天的星座2017-05-17 10:05:19

    私の個人的な理解では、このタイプの制限はクラス自体ではなく、渡されるパラメーターに対する制限であると考えています

    返事
    0
  • 高洛峰

    高洛峰2017-05-17 10:05:19

    ギフト、ジェネリックタイプを指定しない場合、デフォルトはオブジェクトです。それはTさんのことですよね? Java のジェネリックスはコンパイル段階で型を決定する必要があり、真の意味で動的ではありません。したがって、T 型が宣言されていない場合、T はデフォルトでオブジェクトであるとみなされます

    返事
    0
  • キャンセル返事