[英]Java generics - How do I read this: Foo<T extends Bar<? extends Foo<T>>>?
[英]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.