Java 泛型代码-jdk5上的编译错误,在jdk6上编译良好 Map>>dataAccessMap;
用于将实体类的键->值存储到提供这些实体类的CRUD的DAO实现Java 泛型代码-jdk5上的编译错误,在jdk6上编译良好 Map>>dataAccessMap;,java,generics,compilation,Java,Generics,Compilation,用于将实体类的键->值存储到提供这些实体类的CRUD的DAO实现 Map<Class<? extends Entity<?>>, EntityDAO<? extends Entity<?>>> dataAccessMap; 支持的公共EntityDAO(类entityClass){ if(dataAccessMap.containsKey(entityClass)){ return(EntityDAO)dataAccessMap.ge
Map<Class<? extends Entity<?>>, EntityDAO<? extends Entity<?>>> dataAccessMap;
支持的公共EntityDAO(类entityClass){
if(dataAccessMap.containsKey(entityClass)){
return(EntityDAO)dataAccessMap.get(entityClass);
}
抛出新的UnsupportedOperationException();
}
这是一个查找API,用于按实体类获取DAO实现实例
在jdk1.5(jdk1.5.0_22)上,代码不会编译
public <T extends Entity<T>> EntityDAO<T> thatSupports(Class<T> entityClass) {
if(dataAccessMap.containsKey(entityClass)) {
return (EntityDAO<T>) dataAccessMap.get(entityClass);
}
throw new UnsupportedOperationException();
}
不可转换类型的编译失败
发现:EntityDAO对我来说效果很好。请查看下面的截图
为什么要使用旧jdk。Java8已经发布now@javaBeginner,Java8尚未发布。它仍然是测试版。释放的时间表是三月2014@AbhijithNagarajan我应该说你在使用哪个版本的JDK?是JDK 1.5.22版本是1.5.0_22-b03吗
Compilation failure inconvertible types
found : EntityDAO<capture of ? extends Entity<?>>
required: EntityDAO<T>