我该如何确定一个Java泛型是否实现了特定的接口?
我尝试了几种不同的方法,但它们都会导致“无法找到符号...变量T”的错误。
第一次尝试
public abstract class AbstractClass<T> {
public void doFoo() {
if (T instanceof SomeInterface){
// do stuff
}
}
}
第二次尝试
public abstract class AbstractClass<T> {
public void doFoo() {
if (SomeInterface.class.isAssignableFrom(T)) {
// do stuff
}
}
}
if
始终为真。如果您需要多个这样的if
,那将表明某些设计缺陷。 - MarioDS