public abstract class ASTNode3 extends ASTNode { ASTNode child1; ASTNode child2; ASTNode child3; public ASTNode3(ASTNode c1, ASTNode c2, ASTNode c3) { child1 = c1; child2 = c2; child3 = c3; } public ASTNode getChild1() { return child1; } public ASTNode getChild2() { return child2; } public ASTNode getChild3() { return child3; } } public class IRProc extends ASTNode3 { public IRProc (String p, Vector v, IRCmdSeq cmds) { super(p,v,cmds); }
我扩展了ASTNode,如下所示,但是当我尝试传入Vector和String作为参数时,我不断收到错误。如何在不影响节点的情况下传递这些值。我正在考虑创建一个处理类型的中间类,但我不知道如何。
答案 0 :(得分:2)
在第
行super(p,v,cmds);
您尝试使用参数ASTNode3(ASTNode c1, ASTNode c2, ASTNode c3)
调用构造函数String p, Vector v, IRCmdSeq cmds
。这不匹配。
您必须创建ASTNode
的实例才能调用super()
。你如何做到这一点取决于你想做什么。也许您应该解释p
,v
和cmds
实际包含的信息类型。