我遇到了 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/