我正在实施课程
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(String[]::new) 方法找到合适的方法 Java.util.Collection.toArray(T[]) 不适用(无法推断类型变量 T(参数不匹配;数组不是功能接口))
任何想法,我该如何解决这个问题?
注意:我无法更改测试代码
谢谢大家!问题已解决。问题是测试是用 Java 11 编写的,但我使用的是 Java 8。更新到 Java 11 后,一切都可以构建和编译