我正在编写一些代码来通过for循环运行一个对象列表,运行一个函数,然后将函数的结果打印成一个数组并返回数组。在声明我的数组时,我的括号中出现了非法的表达式错误开始错误,但我的所有花括号都处于正确的位置,我找不到任何愚蠢的错误。
我已经尝试更改对象和所有内容,但这是一个赋值,我只能更改computeStrings方法中的代码。
public static List<String> computeStrings(List<Employee> employeeList, Function<Employee, String> f) {
int size = employeeList.size();
<String>[] array = new String[size];
for(int i = 0; i < size;i++){
array[i] = employeeList[i].f;
}
return array;
}
Main.java:47: error: illegal start of expression
<String>[] array = new String[size];
^
Main.java:47: error: illegal start of expression
<String>[] array = new String[size];
^
发布于 2019-04-01 14:57:41
<String>[] array
不是法律声明的表达。
String[] array
还有
employeeList[i]
也不合法,因为你正在处理 List<T>
而不是数组。因此你需要
employeeList.get(i)
我已经看到你传递一个函数作为输入,所以你想要执行
f.apply(employeeList.get(i));
完整的代码结果
public static List<String> computeStrings(
final List<Employee> employeeList,
final Function<Employee, String> f) {
final int size = employeeList.size();
final List<String> array = new ArrayList(size);
for (int i = 0; i < size; i++){
array.add(f.apply(employeeList.get(i)));
}
return array;
}
您可以选择for
使用a来简化循环Stream
final List<String> array =
employeeList.stream()
.map(e -> f.apply(e)) // expanded, simplifiable to "map(f)"
.collect(Collectors.toList());
https://stackoverflow.com/questions/-100006534
复制相似问题