我有一个带有方法的抽象类,我希望返回类的子类的'this'。当我使用该方法时,我不希望它返回作为MyClass转换的对象,我必须将其重新回到它的真实状态。有没有一种很好的方法来使用泛型?
abstract public class MyClass{
public <aSubClassOfMyClass> doSomething(){
return this;
}
}
答案 0 :(得分:3)
您可以使用CRTP:
使该类具有通用性abstract public class MyClass<T extends MyClass<T>>{
public T doSomething(){
return this;
}
}