Итак, у меня есть класс AbstractSyntaxTreeNode.java (вот его часть)
public abstract class ASTreeNode implements Iterable<ASTreeNode>{
protected List<ASTreeNode> children;
protected ASTreeNode(){
children = new LinkedList<ASTreeNode>();
}
protected ASTreeNode(ASTreeNode... children){
this();
for(ASTreeNode c: children)
{
this.addChild(c);
}
А потом у меня есть другой класс Operation, который расширяет ASTreeNode
public class Operation extends ASTreeNode
{
char s;
private Operation(Term t)
{
//QUESTION REGARDING THIS PART
super(t, t.getChild(0), t.getChild(1));
}
}
Как добавить все дочерние объекты t (которые также расширяют ASTreeNode) в аргументы супер-ctor? Без жесткого кодирования это так? Я пробовал super (t, t.children), но конструктор не принимает List в аргументе, только ASTreeNodes
принимаются.
О, и это классный термин
public class Term extends ASTreeNode
{
char symbol;
private Term(Factor f)
{
super(f, f.getChild(0));
}
}
И есть еще куча классов, которые отправляют своих детей в другой узел