在Java泛型中,给定泛型类/接口Foo<T>
,
声明一个新的泛型类有什么区别:
Foobar<T extends Foo<T>>
或简单地Foobar<T extends Foo>
,也为什么我可以在不实例化类型参数Foo<T>
的情况下实例化泛型类T
?即为什么我要编写以下代码:
Foo var = new Foo();
,这是否意味着该类由一个对象实例化,通过该对象我只能使用非泛型方法?
如果问题不是很清楚,请原谅我,我正在处理的示例如下:
MyClass<T extends Comparable<T>>
答案 0 :(得分:0)
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类的对象进行比较,这不是您想要的