用JavaConverters替换JavaConversions

kjo*_*kjo 7 scala

当我尝试基于此示例运行代码时,我收到以下警告:

warning: object JavaConversions in package collection is deprecated (since 2.12.0): use JavaConverters
Run Code Online (Sandbox Code Playgroud)

AFAICT,负责警告的线路是:

import scala.collection.JavaConversions._

/* ... */

    for ((k,v) <- environmentVars) println(s"key: $k, value: $v")
Run Code Online (Sandbox Code Playgroud)

用的替换import线

import scala.collection.JavaConverters._
Run Code Online (Sandbox Code Playgroud)

...是不足够的; 单独执行此操作会导致错误:

error: value withFilter is not a member of java.util.Map[String,String]
    for ((k,v) <- environmentVars) println(s"key: $k, value: $v")
Run Code Online (Sandbox Code Playgroud)

还有什么必须做的?

Yuv*_*kov 8

您需要添加asScala方法:

import scala.collection.JavaConverters._

for ((k,v) <- environmentVars.asScala) println(s"key: $k, value: $v")
Run Code Online (Sandbox Code Playgroud)