Heim  >  Fragen und Antworten  >  Hauptteil

Wenig Zweifel an generischen Java-Klassen

Es gibt eine Klasse, die definiert ist als class Gift<T>{...}
当我新建一个Gift对象时,如 Gift<Phone> myGift = new Gift<Phone>
Welcher Typ ist das myGift-Objekt? Ist es ein Geschenk, ein Telefon oder ein Objekt?
Ich habe in einem Blog einen Absatz gelesen, in dem es heißt: Wenn Sie beim Instanziieren eines Objekts kein generisches Objekt angeben, lautet die Standardeinstellung: Objekt, aber wenn Sie kein generisches Objekt angeben, sollte die Standardeinstellung nicht GIft sein?

習慣沉默習慣沉默2685 Tage vor565

Antworte allen(3)Ich werde antworten

  • PHPz

    PHPz2017-05-17 10:05:19

    <T> 这只是一个泛型的声明 Gift<T> 说明你在Gift里面存在T这个泛型的使用,java遵循先声明后调用原则,故此需要在使用T之前现声明T的具体类型与myGift的类型无关,不论T的类型是什么myGift都是Gift的一个类的对象.
    望采纳!

    Antwort
    0
  • 滿天的星座

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

    我个人的理解是,这个类型的限制,是对传入参数的限制,而不是类本身的

    Antwort
    0
  • 高洛峰

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

    Gift呀,不指定泛型,默认为:Object。那是针对T来说的吧。Java的泛型在编译阶段需要确定类型,不是真真的动态。所以没声明T类型就默认了T为object

    Antwort
    0
  • StornierenAntwort