У меня есть функция Java, которая требует от меня передать параметр Void
из-за ограничений типа. Что-то вроде:Использование Java Void type в Kotlin
void foo(Void v) {
// do something
}
Теперь я хотел бы назвать эту функцию из Котлин, но компилятор жалуется, что типы не совместимы, когда я называю его null
как я бы с Java:
foo(null);
Что мне нужно передать этой функции, чтобы компилятор Kotlin принял ее?
Update: фактический код выглядит следующим образом:
fun foo(): Map<String, Void> {
return mapOf(Pair("foo", null))
}
Update: с помощью null as Void
фактически не работает, либо:
kotlin.TypeCastException: null cannot be cast to non-null type java.lang.Void
вы TRIE d установить переменную в значение null перед началом? Является ли функция, использующая INT или OBJECT? Если это возможно, установите его в NULL, прежде чем пытаться получить к нему доступ или изменить его. Это метод, который вы вызываете, или вы наследуете это от другого класса? – colt
Фактически я наследую функцию, которая должна возвращать 'Map' и хочет 'return mapOf (Pair (" foo ", null))' –
TBieniek
Каково точное сообщение об ошибке, данное компилятором? Я не смог воспроизвести проблему в изолированном образце, т. Е. Вы могли бы передать значение null в параметр «Void» –