公共抽象类ASTNode3扩展了ASTNode {

    ASTNode child1;
    ASTNode child2;
    ASTNode child3;

    公开ASTNode3(ASTNode c1,ASTNode c2,ASTNode c3){
    child1 = c1;
    child2 = c2;
    child3 = c3;
    }

    公共ASTNode getChild1(){
    返回child1;
    }

    公共ASTNode getChild2(){
    返回child2;
    }

    公共ASTNode getChild3(){
    返回child3;
    }
}

公共类IRProc扩展了ASTNode3 {

    公共IRProc(字符串p,向量v,IRCmdSeq cmds){
    超级(p,v,cmds);
    }


我扩展了ASTNode,如下所示,但是当我尝试传递一个Vector和一个String作为参数时,我不断出错。如何在不影响节点的情况下传递这些值。我当时正在考虑创建一个处理该类型的中间类,但是我不知道该怎么做。

最佳答案

在行中

super(p,v,cmds);


您尝试使用参数ASTNode3(ASTNode c1, ASTNode c2, ASTNode c3)调用构造函数String p, Vector v, IRCmdSeq cmds。这不匹配。

您必须创建ASTNode的实例才能调用super()。您如何执行此操作取决于您要执行的操作。也许您应该解释pvcmds实际包含的信息类型。

关于java - 类型传递/更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1655568/

10-11 02:24