みなさんこんにちは
JavaでDomaというORMを使っています。
EntityListenerProvider.get()をオーバーライドして、LISTENER を返却したいです。
しかし、ジェネリックが複雑でLISTENER をどのようにClassを宣言すればいいのかわかりません。
すいませんが、このジェネリックの実装方法教えてください。
package org.seasar.doma.jdbc; public interface EntityListenerProvider { default <ENTITY, LISTENER extends EntityListener<ENTITY>> LISTENER get( Class<LISTENER> listenerClass, Supplier<LISTENER> listenerSupplier) { return listenerSupplier.get(); } }
こんな感じのコードを書いて、Eclipseに怒られました。
@Override public <ENTITY, LISTENER extends EntityListener<ENTITY>> LISTENER get(Class<LISTENER> listenerClas, Supplier<LISTENER> listenerSupplier) { return new EntityListenerExt<ENTITY>(); // <--- これはNGらしい } public static class EntityListenerExt<ENTITY> implements EntityListener<ENTITY> { }