函数中的可变参数需要传入对应类型的数组,有两种方法可以将ArrayList
转化为数组:
List<String> list = new ArrayList<>();
String[] array = (String[]) list.toArray();
这样看上去是没什么问题,但实际上toArray()
返回的是Object[]
类型,不能直接将其强转为String[]
,会报以下错误:
必须将一个个提取出来转化为目标类型,因此可以用其重载方法toArray(T[] a)
:
List<String> permitPaths = new ArrayList<>();
permitPaths.add("/employee/login");
String[] permitArray = new String[permitPaths.size()];
permitPaths.toArray(permitArray);