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



假设我有一个接口

interface I {}

及其两种实现方式class A implements I {}class B implements I {}现在我想写一个通用方法,它接受由"实现接口I"限定的类类型参数,例如

boolean <T> isOK ( Class<T extents I> cl ) {
switch ( cl ) {
case A.class: return true ;
case B.class: return false;
}
}

如何做到这一点?

我想你的意思是:

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

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

此外,你不能打开Class,你必须使用其他东西来检查它,比如if语句。

最新更新