Map<Class<? extends Entity<?>>, EntityDAO<? extends Entity<?>>> dataAccessMap;
用于存储实体类的键 - >值给提供这些实体类的CRUD的DAO实现。泛型代码 - 在jdk5上编译时出错,在jdk6上编译得很好
public <T extends Entity<T>> EntityDAO<T> thatSupports(Class<T> entityClass) {
if(dataAccessMap.containsKey(entityClass)) {
return (EntityDAO<T>) dataAccessMap.get(entityClass);
}
throw new UnsupportedOperationException();
}
这是通过实体类获取DAO实施实例的查找API。
在JDK 1.5(jdk1.5.0_22)上,代码不能编译。
Compilation failure inconvertible types
found : EntityDAO<capture of ? extends Entity<?>>
required: EntityDAO<T>
然而,代码编译和JDK 6(45年6月1日)执行罚款
有没有一种方法可以让我以不同表达这种汇编关于JDK 1.5。该方法肯定要返回一个EntityDAO
。 java 8现已推出 – SpringLearner
@javaBeginner,Java 8尚未发布。它仍处于Beta版本。该发布的时间表是2014年3月 –
@AhhijithNagarajan我应该说测试版 – SpringLearner