假设我有一个界面
interface I {}
及其两个实现,class A implements I {}
和class B implements I {}
现在,我想编写一个通用方法,该方法接受以“ Implements interface I”为边界的类类型参数,例如
boolean <T> isOK ( Class<T extents I> cl ) {
switch ( cl ) {
case A.class: return true ;
case B.class: return false;
}
}
该怎么做?
答案 0 :(得分:1)
我认为您的意思是:
public <T extends I> boolean isOK(Class<T> cl) {
...
}
泛型类型的限定符在声明泛型类型的位置,即第一个三角括号,而不是第二个。
此外,您无法打开Class
,必须使用其他方法来检查它,例如if
语句。