gpt4 book ai didi

kotlin - Java 8 lambda 到 kotlin lambda

转载 作者:IT老高 更新时间:2023-10-28 13:46:36 25 4
gpt4 key购买 nike

public class Main {
static class Account {
private Long id;
private String name;
private Book book;

public Account(Long id, String name, Book book) {
this.id = id;
this.name = name;
this.book = book;
}

public String getName() {
return name;
}
}
public static void main(String[] args) {
List<Account> data1 = new ArrayList<>();
data1.add(new Account(1L,"name",null));
List<String> collect = data1.stream().map(account -> account.getName()).collect(Collectors.toList());

System.out.println(collect);
}
}

在上面的代码中,我尝试转换以下行

List<String> collect = data1.stream().map(account -> account.getName()).collect(Collectors.toList());

进入 kotlin 代码。 Kotlin 在线编辑器给了我以下代码

 val collect = data1.stream().map({ account-> account.getName() }).collect(Collectors.toList())
println(collect)

当我尝试运行它时会出现编译错误。

如何解决这个问题???

或者从帐户对象列表中获取字符串列表的 kotlin 方法是什么

最佳答案

Kotlin 集合没有 stream() 方法。

https://youtrack.jetbrains.com/issue/KT-5175 中所述,你可以使用

(data1 as java.util.Collection<Account>).stream()...

或者您可以使用不使用流的原生 Kotlin 替代方案之一,在 this question 的答案中列出:

val list = data1.map { it.name }

关于kotlin - Java 8 lambda 到 kotlin lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36952815/

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