【问题标题】:scala - how to override java.util.List with scala's List() in REPLscala - 如何在 REPL 中使用 scala 的 List() 覆盖 java.util.List
【发布时间】:2018-01-09 11:16:58
【问题描述】:

我正在导入 java.util._,当我使用 scala 的 List() 集合时它优先。我必须显式编写 scala.collection.immutable.List 才能访问 scala 的集合。如何让 REPL 默认使用 scala 的 List(),即使我导入 java.util._

scala> import java.util._

scala> val dup = List(1,1,1,2,3,4,5,5,6,100,101,101,102)

<console>:35: error: object java.util.List is not a value
       val dup = List(1,1,1,2,3,4,5,5,6,100,101,101,102)
                 ^

scala> val dup = scala.collection.immutable.List(1,1,1,2,3,4,5,5,6,100,101,101,102)

dup: List[Int] = List(1, 1, 1, 2, 3, 4, 5, 5, 6, 100, 101, 101, 102)

scala>

【问题讨论】:

    标签: scala list


    【解决方案1】:

    您可以像这样导入除java.util.List 之外的所有内容:

    import java.util.{List => _, _}
    

    【讨论】:

    • 如何排除多个包?。我也收到地图错误
    【解决方案2】:

    显式导入 scala.collection.immutable.List。

    【讨论】:

      【解决方案3】:

      为避免命名空间冲突,如果您需要两者,您可以在导入期间重命名:

      import java.util.{List => JList, _}
      

      【讨论】:

      • 你能说明重命名多个包的语法吗?
      • 您可以在同一行中有多个重命名,而最后的下划线将按原样导入该包中的所有其他名称。多个重命名如下import java.util.{List =&gt; JList, Map =&gt; JMap, _}Here 是关于该主题的简单而良好的参考。
      猜你喜欢
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 2018-06-27
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      相关资源
      最近更新 更多