Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Scala中的java.util.Set构建java.util.List_Java_List_Scala_Set_Scala Collections - Fatal编程技术网

从Scala中的java.util.Set构建java.util.List

从Scala中的java.util.Set构建java.util.List,java,list,scala,set,scala-collections,Java,List,Scala,Set,Scala Collections,我想基于另一个java集合(如Scala中的集合)创建一个java列表 为什么这是不可能的?我得到一个必需的:scala.this.Int错误 val in: java.util.Set[String] = new java.util.HashSet() val out : java.util.List[String] = new java.util.ArrayList(in) 然而,这是可行的,但感觉不对: val in: java.util.Set[String] = new java.u

我想基于另一个java集合(如Scala中的集合)创建一个java列表

为什么这是不可能的?我得到一个必需的:scala.this.Int错误

val in: java.util.Set[String] = new java.util.HashSet()
val out : java.util.List[String] = new java.util.ArrayList(in)
然而,这是可行的,但感觉不对:

val in: java.util.Set[String] = new java.util.HashSet()
val out: List[String] = new java.util.ArrayList()

out.addAll(in.asInstanceOf[java.util.Set[String]])

谢谢

您需要显式地传递ArrayList类型变量

这很好:

val in = new java.util.HashSet[String]
val out = new java.util.ArrayList[String](in)
这项工作:

val in: java.util.Set[String] = new java.util.HashSet()
val out : java.util.List[String] = new java.util.ArrayList[String](in)

我假设这个问题与类型擦除有关,因为ArrayList没有像Scala数组那样参数化,而是一个存在类型。这可能使类型推断变得不可能。

谢谢您的回答!我注意到,如果集合的类型是未指定的(没有使用泛型),这也会起作用:val out:List[String]=new ArrayList[String](int.asInstanceOf[Set[String]])谢谢你的提问-通过尝试回答这个问题,我学到了很多有关Scala的知识。顺便说一句,如果有人回答你,礼貌的做法是投赞成票或接受他们的回答。(我没有回答,但我很感谢那些回答的人)提交给trac谢谢尼克的指针!我第一次来这里:-)