我正在实现一个类。
class PairStringList extends ArrayList<String> {
...
@Override
public <T> T[] toArray(T[] a) {
return super.toArray(a);
}
}
我已经为这个类编写了测试,它们使用了这样的声明:
assertArrayEquals(new String[]{}, list.toArray(String[]::new));
我看到他们在Lambda表达式中使用了toArray()方法作为参数。如何实现toArray()方法以正确运行测试?目前我的编译输出如下:
没有找到适合的toArray(String[]::new)方法 Java.util.Collection.toArray(T[])方法不适用 (无法推断出类型变量T (参数不匹配;数组不是一个函数接口))
有什么想法,该如何解决这个问题?
注意:我不能改变测试代码
感谢大家!问题已经解决。 问题是测试是用 Java 11 编写的,而我使用的是 Java 8。将 Java 更新到 11 版本后一切都可以构建和编译。
list
是什么类型? - knittlclass PairStringList extends ArrayList<String> {}
是否已经通过了那个测试? - tevemadar