Вы можете использовать putAll
из Properties
, но он ожидает карту Java, поэтому вам также необходимо выполнить преобразование:
import scala.collection.JavaConverters._
val m = Map("x" -> 24, "y" -> 25, "z" -> 26)
val properties = new Properties()
properties.putAll(m.mapValues(_.toString).asJava)
Как и MarioGalic заметил в комментарии, все значения, хранящиеся в свойствах, должны быть строками (даже если теоретически вы можете хранить любой объект). Из документов:
Поскольку Properties наследуется от Hashtable, методы put и putAll могут быть применены к объекту Properties. Их использование настоятельно не рекомендуется, так как они позволяют вызывающей стороне вставлять записи, ключи или значения которых не являются строками. Вместо этого следует использовать метод setProperty. Если метод store или save вызывается для «скомпрометированного» объекта Properties, содержащего не строковый ключ или значение, вызов завершится неудачно. Аналогично, вызов метода propertyNames или list завершится ошибкой, если он вызывается для «скомпрометированного» объекта Properties, который содержит не-строковый ключ.
Из-за этого вам, вероятно, придется позвонить mapValues(_.toString)
:
properties.putAll(m.mapValues(_.toString).asJava)