Java 泛型 - 子类型检查?

标签 java generics

如何检查作为参数传递的通用子类型?

例如:

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/

相关文章:

java - Word 拓扑部署错误

java - 使用 Selenium DataProvider 运行多个测试

ios - 如何在swift中通过泛型实现对象合并?

c# - 有没有一种方法可以用 Moq 来模拟 DbSet.Find 方法?

java - 无法使用不同类型的参数实现接口(interface)

javascript - 离线测试经过身份验证的 Cloud Endpoints 方法

java - XStream - 在向界面添加函数后使用以前的序列化对象?

c# - 为什么我们不能使用密封类作为通用约束?

c# - 用 `new()` 约束类型参数是什么意思?

java - Firebase android 可以在模拟器上运行,但不能在设备上运行