Котлин требует явного приведения к объекту - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь написать метод в Kotlin, который возвращает объект типа Object.

В Java я бы просто написал это как

public Object test() {
    return "Bla";
}

Однако в Kotlin этоне работает и выдает ошибку

fun test(): Object {
    return "Bla"
}

При приведении строки return "Bla" as Object работает.Интересно, что Kotlin Object импортирован из java.utils и, вероятно, не является тем же объектом, что и в коде Java.

Почему это так?Разве Котлин не хочет, чтобы вы возвращали такие общие объекты?Как мне добиться этого в Котлине?

1 Ответ

0 голосов
/ 19 октября 2018

В Kotlin иерархия типов начинается с Any: https://kotlinlang.org/docs/reference/classes.html#inheritance

Вы можете написать:

fun test() : Any {
    return "Bla"
}

Но Any не Object.

Примечание: Any не является java.lang.Object;в частности, он не имеет никаких членов, кроме equals (), hashCode () и toString ().Пожалуйста, обратитесь к разделу о совместимости Java для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...