gpt4 book ai didi

java - 如何在java中递归访问结束嵌套对象

转载 作者:太空宇宙 更新时间:2023-11-04 06:42:59 24 4
gpt4 key购买 nike

我想使用最后一个对象“mul1”递归地访问其他嵌套对象,因为它包含所有其他对象。但它只返回一个对象。它不是一个类似 Vector 的对象。请任何人都可以提供访问这些嵌套对象的解决方案。 enter image description here

    FormulaElement varX=new VariableElement("X");
FormulaElement c7=new ConstantElement(7);
FunctionElement plus=new PlusFunctionElement();
plus.addArgument(varX);
plus.addArgument(c7);


FormulaElement c2=new ConstantElement(2);
FunctionElement min=new MinusFunctionElement();
min.addArgument(varX);
min.addArgument(c2);


FunctionElement mul1=new MultipleFunctionElement();
mul1.addArgument(plus);
mul1.addArgument(min);

编辑:

公式元素尚不包含任何方法。我想添加此递归方法来查找 FormulaElement 类中的嵌套元素。这是我的 FunctionElement 类:

public class FunctionElement extends FormulaElement {

private Vector<FormulaElement> arguments;

public FunctionElement() {
arguments = new Vector<FormulaElement>();
}

public void addArg(FormulaElement element) {
arguments.add(element);
}

public void setArgs(Vector<FormulaElement> arguments) {
this.arguments = arguments;
}

public Vector<FormulaElement> getArgs() {
return arguments;
}

public FormulaElement getArg(int i) {
return arguments.get(i);
}

public String toString() {
return this.toString();
}

}

最佳答案

跟踪调用者和传递的参数

可能不是最好的解决方案,但您可以使用 ArrayList (或者可能是其他东西来跟进这个想法)来跟踪 callerargument

例如您可以更改 addArgument方法addArgument(caller,argument);然后里面argument您可以将此对象添加到您的类级别变量 ArrayList<Object[]> .

但是你有责任检查ArrayList中是否不应该有重复。 .

您还可以创建单独的类来执行相同的操作。

关于java - 如何在java中递归访问结束嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24429619/

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