0
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 を返す必要があります

4

1 に答える 1

0

それは私にとってはうまくいきます。以下のスクリーンショットをご覧ください

JDK1.5 JDK1.6

于 2013-10-26T10:41:23.927 に答える