申し訳ありませんがタイル...私は私の質問を再開する方法を知らなかった。一般性に一般性を導入することは可能ですか?
は私が私の問題を紹介しましょう:
私はジェネリック型の型を取得したいです。
いくつかのコード:
public class AbstractDao<T, PK extends Serializable> {
public T getByPrimaryKey(PK primariKey) {
return null;
}
}
public class AbstractEntity<PK extends Serializable> {
PK id;
//Getter Setter
}
public class Entity extends AbstractEntity<Long> {
}
私は変更したいコード:
public class AbstractService<T, PK extends Serializable> {
AbstractDao<T, PK> dao;
public T getByPrimaryKey(final PK primaryKey) {
return dao.getByPrimaryKey(primaryKey);
}
}
public class EntityService extends AbstractService<Entity, Long> {}
アイデアはAbstractService から "PKはSerializableを拡張し、" 削除してdynamiclyそれを得るためです。
どうすればいいですか?助けのための
public T getByPrimaryKey(final PK primaryKey)
感謝を: - > PKは、私はこの方法では、「オブジェクト」の代わりに「PK」を使用したくない...滞在する必要があります。
種類は、あなたが避けることができそうすればあなたはジェネリックPK
タイプしたくない場合は、あなたがそのようなLongPrimaryKey
など様々な実装、などと実際の主キーのラッパーとしてPrimaryKey
インターフェースを作成することができます
"アイデアは、" PK extends Serializable "をAbstractServiceから削除し、動的に取得することです。" 「動的に」という意味はどういう意味ですか?あなたはそれで何をしたいですか? –
どこから動的に取得するには?あなたの現在のコードについて気に入らないのは何ですか? –