簡體   English   中英

Java泛型:Foo<T> , Foo, Foobar <T extends Foo<T> &gt; 和 Foobar<T extends Foo>

[英]Java Generics: Foo<T>, Foo, Foobar<T extends Foo<T>> and Foobar<T extends Foo>

在Java泛型中,給定一個泛型類/接口Foo<T> ,聲明一個新的泛型類有什么區別: Foobar<T extends Foo<T>>或簡單的Foobar<T extends Foo> ,還有為什么我可以實例化一個泛型class Foo<T>沒有實例化類型參數T ?,即為什么我可以寫以下內容: Foo var = new Foo(); ,這是否意味着該類是用一個對象實例化的,通過它我只能使用非泛型方法? 如果問題不太清楚,請原諒我,我正在研究的示例如下: MyClass<T extends Comparable<T>>

class Foo<T> {}

是你的班級。

Foo yourVariable = new Foo();

等於Foo<Object> yourFoo = new Foo<Object>();

class Foobar<T> extends Foo {}

等於class Foobar<T> extends Foo<Object> {}

你的問題的答案

class YourClass<T extends Comparable<T>> {}

意味着 YourClass 的類型T能夠將自己與T 的對象(它的類)進行比較,而

class YourClass<T extends Comparable> {}

的類型T能夠將自身與Object 類的對象進行比較,這不是您想要的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM