Java:由接口实现参数化的类类型

时间:2018-07-14 13:38:06

标签: java generics

假设我有一个界面

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;
    }
}

该怎么做?

1 个答案:

答案 0 :(得分:1)

我认为您的意思是:

public <T extends I> boolean isOK(Class<T> cl) {
   ...
}

泛型类型的限定符在声明泛型类型的位置,即第一个三角括号,而不是第二个。

此外,您无法打开Class,必须使用其他方法来检查它,例如if语句。