使用Java派生类数组时出错
我在这段代码上遇到了一个我不理解的错误(在注释中标记): 到 我用来检查答案的测试是:使用Java派生类数组时出错,java,derived-class,Java,Derived Class,我在这段代码上遇到了一个我不理解的错误(在注释中标记): 到 我用来检查答案的测试是: Terminal t1 = new Terminal("t1"); Terminal t2 = new Terminal("t2"); Terminal t3 = new Terminal("t3"); NonTerminal exp = new NonTerminal("exp"); NonTerminal nt1 = new NonTerminal("nt1");
Terminal t1 = new Terminal("t1");
Terminal t2 = new Terminal("t2");
Terminal t3 = new Terminal("t3");
NonTerminal exp = new NonTerminal("exp");
NonTerminal nt1 = new NonTerminal("nt1");
NonTerminal nt2 = new NonTerminal("nt2");
NonTerminal nt3 = new NonTerminal("nt3");
Rule r1 = new Rule(exp, t1, nt2, t3);
Log.v(TAG, "The rule is: " + r1.toString());
日志文件显示:
01-15 10:18:11.335:V/MainActivity(1732):规则是:exp->t1 nt2 t3
classe当我按照您的建议执行操作时,会出现相同的错误,但在其他地方:this.rhs=rhs代码>(规则类的构造函数)类型不匹配:无法从类转换ctor也应该更改-我相应地修改了我的答案。有效,请参阅我的增强型问题正文。现在我不明白什么时候以及如何使用类
Class<? extends Symbol>
Symbol
Terminal t1 = new Terminal("t1");
Terminal t2 = new Terminal("t2");
Terminal t3 = new Terminal("t3");
NonTerminal exp = new NonTerminal("exp");
NonTerminal nt1 = new NonTerminal("nt1");
NonTerminal nt2 = new NonTerminal("nt2");
NonTerminal nt3 = new NonTerminal("nt3");
Rule r1 = new Rule(exp, t1, nt2, t3);
Log.v(TAG, "The rule is: " + r1.toString());
public class Rule {
private NonTerminal lhs;
private Symbol[] rhs;
public Rule(NonTerminal lhs, Symbol... rhs) {
this.lhs = lhs;
this.rhs = rhs;
}
}