我需要编写一个接受专用类类型的varargs List的类类应该在内部将此列表存储为类属性并返回此列表
我的代码,不编译是这样的
public class Sequence implements BasicClassInterface {
private List<BasicClassInterface> befehlsliste = new ArrayList<>();
// copy to a list is working
public Sequence (BasicClassInterface... params ) {
int i;
for(i=0; i< params .length; i++) {
befehlsliste.add( params [i] );
}
}
// also fine
public void addOneMore (BasicClassInterface basicClassInterface ) { befehlsliste.add( basicClassInterface); }
// my problem ... how to return a vararg of basicClassInterface ???
public Sequence getSeqence () { return befehlsliste.stream().toArray(); ??? }
不能"返回varargs"。Varargs只是数组的语法糖,只能用作参数类型(更具体地说,只能作为方法/构造函数的最后一个参数)。因此,看起来您想要返回一个数组,这意味着您需要将返回类型更改为BasicClassInterface[]
(数组类型)。您也不需要使用stream()
将列表转换为数组。
public BasicClassInterface[] getSequence() {
return befehlsliste.toArray(BasicClassInterface[]::new);
}