如何检查作为参数传递的通用子类型?
例如:
public class A<T> { public T get();}
public class AString extends A<String> {}
public class ADate extends A<Date> {}
public void checkparam(List<? extends A<?>> params) {
///Want to check if params is of type List<AString> or List<ADate> ?
}
这可能吗?我不明白哪一部分?
最佳答案
这是不可能的,因为像这样的泛型类型信息被删除并且在运行时不可用。在运行时,所知道的是 checkparam
的参数是一个 List
。
关于Java 泛型 - 子类型检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4044357/