gpt4 book ai didi

java - 如何使用类型转换从现有列表在 Scala 中创建列表?

转载 作者:行者123 更新时间:2023-12-02 05:52:10 25 4
gpt4 key购买 nike

上下文

我有一个这样的列表:

List[(User)]

我需要这样的列表:

List[(String, String)]

用户定义如下:

case class User(
id:Pk[Long] = NotAssigned,
name: String
)

如果事实上,初始列表是从类构建的:

尝试过:

我的第一次“幼稚”尝试(来自 Java)是:

myList.map { u => u.id.get.toString, u.name }

我有一个错误:

required List[(String, String)] 
given List[(java.lang.String, String)]

解决方案

正如在评论中引用的帖子中提到的,Scala 有一个 String 类型,它是一个扩展的 java.lang.String。使用推理时,Scala 不会转换为 Scala 父类(super class)。为了使用 Scala String 类型,您必须显式定义返回类型。

例子:

// Returns List[(java.lang.String, String)]
myList.map { u => u.id.get.toString, u.name }

// Returns List[(String, String)]
def convert(m:List[User]):List[(String, String)] = {
m.map { u => u.id.get.toString, u.name }
}

最佳答案

为什么这行不通?

def method(a:List[(Long,String)]):List[(String,String)] = a.map { case (value1,value2) => (value1.toString,value2)}

关于java - 如何使用类型转换从现有列表在 Scala 中创建列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11630748/

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