【发布时间】:2013-10-26 09:18:21
【问题描述】:
Map<Class<? extends Entity<?>>, EntityDAO<? extends Entity<?>>> dataAccessMap;
用于将实体类的键->值存储到为这些实体类提供CRUD的DAO实现中。
public <T extends Entity<T>> EntityDAO<T> thatSupports(Class<T> entityClass) {
if(dataAccessMap.containsKey(entityClass)) {
return (EntityDAO<T>) dataAccessMap.get(entityClass);
}
throw new UnsupportedOperationException();
}
这是一个查找 API,用于通过实体类获取 DAO 实现实例。
在 JDK 1.5 (jdk1.5.0_22) 上,代码无法编译。
Compilation failure inconvertible types
found : EntityDAO<capture of ? extends Entity<?>>
required: EntityDAO<T>
但是代码在 JDK 6 (1.6.45) 上编译和执行良好
有没有一种方法可以让我在 JDK 1.5 上以不同的方式进行编译。该方法肯定必须返回一个 EntityDAO
【问题讨论】:
-
为什么要使用旧的 jdk。 java 8 现已推出
-
@javaBeginner,Java 8 还没有发布。它仍处于 Beta 版本。发布时间为 2014 年 3 月
-
@AbhijithNagarajan 我应该说是测试版
标签: java generics compilation