質問: みなさんこんにちは JavaでDomaというORMを使っています。 EntityListenerProvider.get()をオーバーライドして、LISTENER を返却したいです。 しかし、ジェネリックが複雑でLISTENER をどのようにClassを宣言すればいいのかわかりません。 すいませんが、このジェネリックの実装方法教えてください。 ``` package org.seasar.doma.jdbc; public interface EntityListenerProvider { default > LISTENER get( Class listenerClass, Supplier listenerSupplier) { return listenerSupplier.get(); } } ``` こんな感じのコードを書いて、Eclipseに怒られました。 ``` @Override public > LISTENER get(Class listenerClas, Supplier listenerSupplier) { return new EntityListenerExt(); // <--- これはNGらしい } public static class EntityListenerExt implements EntityListener { } ```
回答: コードを拝見したところ気になる箇所がありますので、以下に記載します。 1getメソッドは、LISTENER を戻り値としなければならないように思えます。 戻り値 EntityListenerExt には、LISTENERをextends、またはimplementされていますか? 2EntityListenerExtはstaticクラスですが、これをnewすることはできるのでしたでしょうか・・・。手元にEclipseが無いので確認できずすいません。。