2013-10-26 129 views
0
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

+0

。 java 8现已推出 – SpringLearner

+0

@javaBeginner,Java 8尚未发布。它仍处于Beta版本。该发布的时间表是2014年3月 –

+0

@AhhijithNagarajan我应该说测试版 – SpringLearner

回答

0

它适用于我。请在下面找到你为什么要使用旧的JDK截图

JDK 1.5 JDK 1.6

+0

您正在使用哪个版本的JDK?是JDK 1.5.22 – SudhirR

+0

版本是1.5.0_22-b03 –