在 Java 中使用访问者模式进行双重调度

Double dispatch using visitor pattern in Java

我有这样的架构:

XMLFormulaFormatter 中,我需要 Constant 实例的值(在我的 Main class 中创建的实例)。

我在Constantclass中有这个方法:

public double asValue() { return value ; }

我已经在 XMLFormulaFormatter class:

中尝试过此代码
@Override
     public String visit(Constant constant){ 
        latexConstant = constant.asValue() ;
        return "";
        }

但是当然它并没有给我我正在查看的内容,因为我想获得 Constant...

的特定实例的值

我也试过XMLFormulaFormatterformat()方法:

@Override
    public String format(Formula format){ format.accept(this);
    if (format instanceof Constant){
        latexConstant= format.asValue();
        return "";
        }

但结果与预期相同。

关于如何获取 Constant 的特定实例的值有什么想法吗?

谢谢!

我想我有,我需要 AbstractVariadicOperator

中的 getter