java - 继承方法返回引用类型

标签 java generics inheritance

我遇到了 this question 中描述的问题但想找到一个没有所有强制转换和@SuppressWarning 注释的解决方案(如果可能的话)。

更好的解决方案是通过以下方式建立在引用的解决方案之上:

  • 删除@SuppressWarning
  • 去除石膏

此处提供的解决方案将根据标准获得 2 分。如果有超过 2 点的解决方案,赏金将用于解决方案中的大多数点数或“最优雅”的解决方案。

最佳答案

没有转换,没有@SuppressWarning,只有几行:

public abstract class SuperClass<T extends SuperClass<T>> {
    protected T that;
    public T chain() {
        return that;
    }
}

public class SubClass1 extends SuperClass<SubClass1> {
    public SubClass1() {
        that = this;
    }
}

public class SubClass2 extends SuperClass<SubClass2> {
    public SubClass2() {
        that = this;
    }
}

关于java - 继承方法返回引用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383773/

相关文章:

java - 为什么泛型类型参数 get 方法会抛出 NullPointerException

java - 如何创建泛型类型的数组?

java - (Triangle 类)设计一个名为 Triangle 的类,它扩展了 GeometricObject

java - SonarQube 说我 "remove this use of constructor "扫描仪(InputStream)”

Java:子类实现了接口(interface),父类却覆盖了接口(interface)的成员?

IEnumerable<IList<object>> 上的 C# foreach 编译但不应该

c++ - union 虚拟继承

C++ 接口(interface)类继承自具体类是否合理?

java - 将属性文件添加到 IntelliJ 的类路径

java - 使用 Thread.sleep 与 CountDownLatch 保持主线程运行