gpt4 book ai didi

java - 第一次尝试 lambda

转载 作者:行者123 更新时间:2023-12-01 18:25:37 25 4
gpt4 key购买 nike

我试图制作我的第一个 lambda 示例,但我无法让这个简单的代码工作。

import java.util.ArrayList;
import java.util.function.Predicate;

public class Lambda {

public static void main(String[] args) {
final String[] names = {"Wim", "Kian", "Dirk", "Emmanuel", "Frank", "Michaël", "Anna", "Damien", "Alberto"};
final String[] filteredNames = getNamesWithCriteria(names, (String s) -> s.startsWith("A"));
}

private String[] getNamesWithCriteria(final String[] names, Predicate<String> predicate) {
final ArrayList<String> filteredNames = new ArrayList<>();
for(String name : names) {
if(predicate.test(name)) {
filteredNames.add(name);
}
}
return (String[]) filteredNames.toArray();
}

}

这些是我得到的错误:

Lambda.java:8: error: ')' expected
final String[] filteredNames = getNamesWithCriteria(names, (String s) ->
s.startsWith("A"));
^
Lambda.java:8: error: illegal start of expression
final String[] filteredNames = getNamesWithCriteria(names, (String s) ->
s.startsWith("A"));
^

Lambda.java:8: error: ';' expected
final String[] filteredNames = getNamesWithCriteria(names, (String s) ->
s.startsWith("A"));

最佳答案

您的项目中没有使用 Java 8。它在 Java 8 中编译得很好。但是您在这一行中有一个错误:

return (String[]) filteredNames.toArray();

如果你想返回一个数组,请将 return 语句更改为这样。

return filteredNames.toArray(new String[filteredNames.size()]);

关于java - 第一次尝试 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26299556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com