公共抽象类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()
。您如何执行此操作取决于您要执行的操作。也许您应该解释p
,v
和cmds
实际包含的信息类型。关于java - 类型传递/更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1655568/