具有多个通用参数和继承的Fluent API

时间:2016-12-17 19:25:57

标签: java generics fluent-interface

我正在尝试实现一个包含专门派生类的流畅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;

0 个答案:

没有答案