Java泛型:Foo <T>,Foo,Foobar <T扩展了Foo <T >>和Foobar <T扩展了Foo>

时间:2020-01-16 01:58:38

标签: java oop generics extends generic-type-argument

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

1 个答案:

答案 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类的对象进行比较,这不是您想要的