Почему методы Any не являются абстрактными или нативными? - PullRequest
0 голосов
/ 14 сентября 2018

Java

Источник

Методы объекта помечены как нативные, поэтому легко понять, что они реализованы за сценой

Котлин

Источник

   public open class Any {
        public open operator fun equals(other: Any?): Boolean
        public open fun hashCode(): Int
        public open fun toString(): String
    }

Любые методы не помечены как нативные или абстрактные, поэтому вопрос следующий:

Когда и как генерируются методы Any, и почему я не могу просто скопировать-вставить Any-класс и скомпилировать без ошибок?

1 Ответ

0 голосов
/ 14 сентября 2018

Any методы не генерируются. Компилятор отображает Any в java.lang.Object, что обеспечивает реализацию методов как часть JDK.

Методы не помечены как абстрактные, поскольку Any не является абстрактным классом. Методы не помечены как native, поскольку отображение классов стандартной библиотеки Kotlin на классы JDK не является уникальным для класса Any, а другие методы, сопоставленные аналогичным образом, не являются родными.

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