次のメソッドで Java レガシー コードを使用する必要があります。
public void doit(Map <String, Object> vals) {...}
私のScalaコード:
var map = new java.util.HashMap[String, Any]
map += "testme" -> 'X'
doit(map)
利回り =>
型の不一致; 見つかった: java.util.HashMap[String, Any] 必須: java.util.HashMap[java.lang.String, java.Object]
だから私はそれを次のように変更します:
var map = new java.util.HashMap[java.lang.String, Object]
map += "testme" -> 'X'
doit(map)
利回り =>
型の不一致; found : Char 必須: java.lang.Object 注: プリミティブ型は暗黙的に AnyRef に変換されません。x.asInstanceOf[AnyRef] をキャストすることで安全にボクシングを強制できます。
それで、最終的に私は次のことを思いつきました:
var map = new java.util.HashMap[java.lang.String, Object]
map += "testme" -> 'X'.asInstanceOf[AnyRef]
doit(map)
これに対処するためのより簡潔な方法はありますか?