我有一些问题从Scala转换为Java,然后再转换为Scala . 我正在尝试从Scala可变缓冲区转换为Java List,然后在应用Java的漂亮的shuffling函数后返回到Scala可变缓冲区 .
我尝试使用Scala的Random库的shuffling函数(即使缓冲区被转换为Scala列表)但是它对我不起作用,因为缓冲区的类型是“Card”类型,它是我为之设置的Object类型我正在研究的项目 . 有问题的代码如下所示:
def shuffleDeck() {
val list: java.util.List[Card] = cards
val newList = java.util.Collections.shuffle(list)
asScalaBuffer(newList)
}
在我正在使用的Scala IDE中,给出的错误是:
类型不匹配;发现:需要单位:java.util.List [?]
我不确定该怎么做 . 任何和所有的帮助将不胜感激!
2 回答
导致错误的行可能是这样的:
当Collections.shuffle(..) (in java.util) has return type void - 传入列表变为混乱时,不会创建新列表 . 考虑到这一点,您的代码应该是:
java.util.Collections.shuffle将在适当的位置对列表进行洗牌,它不会返回新列表 . 返回类型无效 . 尝试使用原始引用
list
调用asScalaBuffer .