scala 2.8 隐式 java 集合转换

发布于 2024-08-24 19:54:43 字数 505 浏览 8 评论 0原文

我在 2.8 beta 中遇到 JavaConversions 问题:

import scala.collection.JavaConversions._
class Utils(dbFile : File, sep: String) extends IUtils {
    (...)
    def getFeatures() : java.util.List[String] =  csv.attributes.toList
}

然后出现异常:

[INFO]  Utils.scala:20: error: type mismatch;
[INFO]  found   : List[String]
[INFO]  required: java.util.List[String]
[INFO]   def getFeatures() : java.util.List[String] =  csv.attributes.toList
[INFO]          

I have problem with JavaConversions with 2.8 beta:

import scala.collection.JavaConversions._
class Utils(dbFile : File, sep: String) extends IUtils {
    (...)
    def getFeatures() : java.util.List[String] =  csv.attributes.toList
}

And then exception:

[INFO]  Utils.scala:20: error: type mismatch;
[INFO]  found   : List[String]
[INFO]  required: java.util.List[String]
[INFO]   def getFeatures() : java.util.List[String] =  csv.attributes.toList
[INFO]          

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

む无字情书 2024-08-31 19:54:43

JavaConversions 不支持 scala List(不可变的递归数据结构)和 java List(可变序列)之间的转换。 scala 中的模拟是一个缓冲区:

来自 scaladoc

支持以下转换:
scala.collection.mutable.Buffer <=>; java.util.List

您可能希望将代码更改为:

def getFeatures() : java.util.List[String] 
    = new ListBuffer[String] ++ csv.attributes.toList

JavaConversions does not support the conversion between a scala List (immutable, recursive data structure) and a java List (a mutable sequence). The analog in scala is a buffer:

From the scaladoc

The following conversions are supported:
scala.collection.mutable.Buffer <=> java.util.List

You might want to change your code to:

def getFeatures() : java.util.List[String] 
    = new ListBuffer[String] ++ csv.attributes.toList
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文