Class<? extends Something>
这是我的解释,它是班级模板但课程?表示类的名称未确定,它扩展了Something类.
如果我的解释有问题,请告诉我.
Dan*_*ses 44
这里有一些令人困惑的答案,所以我会尝试清除它.您可以定义泛型:
public class Foo<T> {
private T t;
public void setValue(T t) {
this.t = t;
}
public T getValue() {
return t;
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想要Foo上的泛型总是扩展类Bar,你可以这样声明它:
public class Foo<T extends Bar> {
private T t;
public void setValue(T t) {
this.t = t;
}
public T getValue() {
return t;
}
}
Run Code Online (Sandbox Code Playgroud)
在?当你声明一个变量被使用.
Foo<? extends Bar>foo = getFoo();
Run Code Online (Sandbox Code Playgroud)
要么
DoSomething(List<? extends Bar> listOfBarObjects) {
//internals
}
Run Code Online (Sandbox Code Playgroud)
Kri*_*izz 34
你几乎是对的.基本上,Java没有模板的概念(C++有).这称为泛型.这定义了一个泛型类Class<>,泛型属性是其子类Something.
我建议阅读" C++和Java中的"通用"类型之间有什么区别? "如果你想获得模板和泛型之间的区别.
Jan*_*cak 10
你是对的
定义是该类必须是Something的子类型
它是一样的Class<T>,但有一个条件T必须extends Something
或implements Something安东尼Accioly建议
它也可以是类Something本身
你是对的。
在 Java 泛型中,?运算符的意思是“任何类”。的extends关键字可被用于限定要“,其延伸/器具任何类Something(或是 Something)。
因此,您有“Class某个类的,但该类必须是或扩展/实现Something”。
| 归档时间: |
|
| 查看次数: |
71477 次 |
| 最近记录: |