Мне нужно использовать устаревший код 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)
урожайность =>
несоответствие типов; найдено: 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)
Есть ли более лаконичный способ справиться с этим?