gpt4 book ai didi

java - 如何返回扩展对象(子类)?实际上,如何返回已传递给方法的确切对象?

转载 作者:行者123 更新时间:2023-12-02 06:01:27 31 4
gpt4 key购买 nike

我有一个抽象类UIObject,如下所示:

public abstract class UIObject {
private final int tabOrder;

public UIObject(int tabOrder) {
this.tabOrder = tabOrder;
}

public int getTabOrder() {
return this.tabOrder;
}
}

并且有一些对象以 UIObject 作为父类(super class)。

在某些服务类中,我还有一个方法 goTo() ,如下所示:

public UIObject goTo(UIObject object) {

//some fancy code here

return object;
}

现在,我想返回已传递给函数的特定对象。 (我知道,这听起来很愚蠢,但它有一个有意义的理由,相信我。)但是由于传递的对象都是 UIObject 的不同子类,因此此方法不能那样工作。

我坚信,我以前做过类似的事情,因此我认为这是一件容易的事情。如果我错了请纠正我。

最佳答案

假设您希望该方法的此类调用起作用:

UIObjectSub obj = goTo(new UIObjectSub());

你必须使该方法通用:

public <T extends UIObject> T goTo(T object) {
//some fancy code here
return object;
}

现在,如果您调用该方法并传递某个子类的对象,则类型参数 T 将被推断为该子类类型。

关于java - 如何返回扩展对象(子类)?实际上,如何返回已传递给方法的确切对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22640472/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com