2013-10-26 47 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 –