下面是两种泛型的示例定义:
public class Foo {
private T value;
public Foo(T value) {
this.value = value;
}
public T getValue() {
return value;
}
}
在这个示例中,泛型T被限制为只能是Foo或Foo的子类。这意味着我们可以使用任何继承自Foo的类来替代T,例如:
Foo foo1 = new Foo<>("abc");
Foo foo2 = new Foo<>(123);
public class Bar extends Foo {
public Bar() {
super(this);
}
}
在这个示例中,泛型T被限制为只能是Foo
Bar bar = new Bar();
Bar bar2 = bar.getValue();
bar.getValue()返回一个Bar类型的对象,因为Foo
因此,Foo