私は識別子と呼ばれるインターフェイスを作成しました。識別子インタフェースを実装するクラスは、MasterEntity beanです。Javaジェネリック - クラス<Interface>
public class MasterEntity implements Identifier{
}
DAOメソッドでは、以下のメソッドシグネチャのようなメソッドを記述しました。
public Identifier getEntity(Class<Identifier> classInstance){
}
ここからサービスから私は以下のようなメソッドを呼び出したいと思います。
dao.getEntity(MasterEntity.class);
しかし、言ってコンパイルエラーを取得しています -
The method getEntity(Class<Identifiable>) in the type ServiceAccessObject
is not applicable for the arguments (Class<MasterEntity>)
私は下のように使用している場合、それは動作します知っています。
public Identifier getEntity(Class classInstance){
しかし、それはどのように行うことができるかの種類を特定できる、クラスを指定して?。メソッドを宣言することで
public Identifier getEntity(Class<? extends Identifier> classInstance)
へ
は< 'クラスを試してみてください? Identifiable> 'を拡張します。 – lexicore
私はあなたの最初の試みが失敗している理由は、タイプ消去と考えています。しかし、クラスの情報を自分のメソッドに渡す必要があると思う理由を説明することはできますか? –
あなたは正しいです。その働き。どうもありがとう。 – Kaushi