Поскольку scala.Boolean
является подклассом scala.AnyVal
, но не scala.AnyRef
(в переводе java.lang.Object
), Boolean
нельзя передать методу, ожидающему Object
(s).
Вы можете использовать сопутствующий объект scala.Boolean
для "упаковки" (в смысле Java, конечно) boolean
в java.lang.Boolean
:
JavaClass.varargsMethod(Boolean.box(true))
Другие классы AnyVal
имеют соответствующие box
методы (например, Int.box
). Существуют также unbox
методы для обратного.
Более сложный вариант использования:
JavaClass.varargsMethod(Seq(1, 2, 3, 4).map(Int.box): _*) // passes 1, 2, 3, 4
Я не знаю, когда они были добавлены в стандартную библиотеку, но с ними вам не нужно использовать классы реализации scala.runtime.*
.