我正在尝试实现一个包含专门派生类的流畅API,并且我使用Derived extends Base<Derived>
方法从基本方法获取this
参数为Derived
,但它没有&#39 ; t似乎使用多个通用参数,例如:
public class Specialized<T> extends Base<Specialized<T>, Iterable<T>> {
void someAMethod() {
}
}
public class Base<ThisType extends Base<ThisType, T>, T> {
public ThisType baseMethod() {
return getMe();
}
@SuppressWarnings("unchecked")
public ThisType getMe() {
return (ThisType) this;
}
}
后来就像使用它一样:
new Specialized().baseMethod()
.someAMethod();
但是baseMethod()
没有返回Specialized
个对象,所以我收到了这个错误:
无法解决方法&#39; someAMethod()&#39;