gpt4 book ai didi

java - 为什么此 Function,String> 不起作用?

转载 作者:行者123 更新时间:2023-11-30 01:48:08 24 4
gpt4 key购买 nike

我正在研究 Function 并且我已经尝试过了

Function<Person,String> byName = Person::getName;
System.out.println( byName.apply(list.get(1)) );

这有效并打印索引 1 处的人名;

但现在我想创建Function<List<Person>,String>迭代所有名单中的人员

Function<List<Person>,String> allNames = a -> a.forEach(e-> e.getName());
System.out.println(allNames.apply(list));

它会抛出一个错误,因为“void 无法转换为字符串”

最佳答案

forEach()接受一个将函数应用于每个元素的消费者。它不会返回任何内容,因此您不能在 System.out.println() 内使用它。称呼。如果您想要从forEach()返回某些内容,很可能您想要stream()如有需要,请调用map()相反。

但是,更接近您的第一个示例,您可能想调用 forEach()相反,在您的列表中,然后打印出每个元素上的函数结果:

Function<Person, String> byName = Person::getName;
list.forEach(e -> System.out.println(byName.apply(e.getName())));

关于java - 为什么此 Function<List<Person>,String> 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168098/

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