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