Я только заметил, что implicit def
, похоже, не работает в var args.Неявный def с VarArgs
Например, у меня есть функция java, которая принимает в качестве входного параметра значение java.lang.Byte...
. Вызов функции окружен методом scala, который принимает scala.Byte
.
implicit def convertTest(bytes: Byte*): Seq[java.lang.Byte] = bytes.map(b => b : java.lang.Byte)
def test(data: Byte*): Unit ={
test2(convertTest(data: _*): _*)
}
def test2(data: java.lang.Byte*) = {
}
По какой-то причине я должен явно ввести convertTest()
для этой работы.
Так что я пытался что-то без параметра varargs
и обнаружил, что на самом деле, если я делаю это, это работает:
implicit def convertTest(bytes: List[Byte]): java.util.List[java.lang.Byte] = bytes.map(b => b : java.lang.Byte).asJava
def test(data: List[Byte]): Unit ={
test2(data)
}
def test2(data: java.util.List[java.lang.Byte]) = {
}
Может кто-то пожалуйста, объясните мне?