Java 未找到适用于ArrayList的方法<;字符串>。返回语句中的toArray(字符串[]::new)

Java 未找到适用于ArrayList的方法<;字符串>。返回语句中的toArray(字符串[]::new),java,arraylist,lambda,java-8,toarray,Java,Arraylist,Lambda,Java 8,Toarray,我在这个网站上工作,特别是AP-1中的这种方法 public String[] wordsWithout(String[] words, String target) { ArrayList<String> al = new ArrayList<>(Arrays.asList(words)); al.removeIf(s -> s.equals(target)); return al.toArray(new String[al.size()]); }

我在这个网站上工作,特别是AP-1中的这种方法

public String[] wordsWithout(String[] words, String target) {
  ArrayList<String> al = new ArrayList<>(Arrays.asList(words));
  al.removeIf(s -> s.equals(target));
  return al.toArray(new String[al.size()]);
}
据我所知,它应该可以工作,给出了以下错误:

no suitable method found for toArray((size)->ne[...]size])
method java.util.Collection.<T>toArray(T[]) is not applicable
  (cannot infer type-variable(s) T
    (argument mismatch; Array is not a functional interface))
method java.util.List.<T>toArray(T[]) is not applicable
  (cannot infer type-variable(s) T
    (argument mismatch; Array is not a functional interface))
method java.util.AbstractCollection.<T>toArray(T[]) is not applicable
  (cannot infer type-variable(s) T
    (argument mismatch; Array is not a functional interface))
method java.util.ArrayList.<T>toArray(T[]) is not applicable
  (cannot infer type-variable(s) T
    (argument mismatch; Array is not a functional interface)) line:4
找不到适合toArray的方法((大小)->ne[…]大小])
方法java.util.Collection.toArray(T[])不适用
(无法推断类型变量)T
(参数不匹配;数组不是函数接口)
方法java.util.List.toArray(T[])不适用
(无法推断类型变量)T
(参数不匹配;数组不是函数接口)
方法java.util.AbstractCollection.toArray(T[])不适用
(无法推断类型变量)T
(参数不匹配;数组不是函数接口)
方法java.util.ArrayList.toArray(T[])不适用
(无法推断类型变量)T
(参数不匹配;数组不是函数接口)行:4
有人能解释一下为什么这不起作用吗?

这个:

al.toArray(String[]::new)
仅在java-11之后通过以下方式支持:

default <T> T[] toArray(IntFunction<T[]> generator) {
     return toArray(generator.apply(0));
}
default <T> T[] toArray(IntFunction<T[]> generator) {
     return toArray(generator.apply(0));
}
 al.stream().toArray(String[]::new)