我有这个界面:
public interface Persistant<T extends BaseDaoEnabled<T, UUID>> extends Identifiable {
T getSelf();
default <P> P getInstance(DataKey<P> key) {
return key.getDefaultInstance();
}
Run Code Online (Sandbox Code Playgroud)
以及实现它的类.我的问题是,当我调用时obj.getInstance(DataKeys.X),X是一个DataKey<X>对象,这个方法的返回类型是Object和否X,泛型类型被剥离.当我把方法放在我的对象类(不是接口)中时,它工作得很好.请参见下面的截图:
第一种方法是从界面,第二种方法是从类.他们都有相同的签名