我有一些具有通用类型interface DummyInterface<T>
的接口,并且我必须设置接口的类
class DummyClass<T>{
public void setDummyInterface(DummyInterface<T> dummyInterface){
//set interface
}
}
想象一下我在
DummyClass
中使用不同的泛型存储ArrayList
的情况。当我从列表中获取类时,我不知道类的泛型,并且我想检查接口是否具有相同的泛型;例如我想这样检查
if(dummyInterface<SomeTypeIKnow>.getGenericType() == dummyClass.getGenericType()){
dummyClass.setDummyInterface(dummyInterface);
}
最佳答案
您可以使用类似TypeTools之类的方法来解析类型参数,只要该参数在类型定义中被捕获即可。例如:
interface DummyStringInterface extends DummyInterface<String> {}
Class<?> t = TypeResolver.resolveRawArgument(DummyInterface.class, DummyStringInterface.class);
assert t == String.class;
关于java - 如何检查具有通用类的接口(interface)是否适合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28906730/