Map<Class<? extends Entity<?>>, EntityDAO<? extends Entity<?>>> dataAccessMap;
これらのエンティティ クラスの CRUD を提供する DAO 実装へのエンティティ クラスのキー -> 値を格納するために使用されます。
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 (1.6.45) で正常にコンパイルおよび実行されます。
JDK 1.5 でコンパイルするために、これを別の方法で表現する方法はありますか。メソッドは必ず EntityDAO を返す必要があります