Являются ли классы Enum в Kotlin «дорогими» для Android как Java? - PullRequest
0 голосов
/ 26 февраля 2019
  • Являются ли Enum классы в Kotlin "дорогими" для Android как Java?.
  • Все еще стоит использовать @IntDefs или @StringDefs в Kotlin?.

Когда я декомпилировал класс Kotlin Enum в класс Java, там все еще использовались Java Enums на низком уровне, которые не рекомендуются для использования в разработке Android, и это заставило меня задуматься об этом.

1 Ответ

0 голосов
/ 26 февраля 2019
  1. Являются ли классы Enum в Kotlin "дорогими" для Android, как Java?. Может быть.Я сомневаюсь, сможет ли kotlin выполнить какую-либо оптимизацию, которую не может выполнить java.
  2. Можно ли использовать @IntDefs или @StringDefs в Kotlin?. - Не совсем.Это предмет поляризации, и многие в мире Android (включая меня) считают, что использование перечислений должно быть предпочтительным способом.Я рекомендую вам прочитать следующие ссылки, чтобы получить лучшее представление.

Тема в Твиттере от Джейка Уортона

Статья Дайаны Хакборн и комментарии

Somwhatостроумная ветка reddit, рассказывающая об оптимизации перечислений и подобных

И следующие ответы Джейка Уортона интересны.

Поддерживает ли lint kotlin typedefs?(Lint для Kotlin не будет полностью поддерживаться до AS 3.1, а мы все еще на 3.0)

Вы имеете в виду typealias?Если да, то да.

Получу ли я предупреждение о задержке для исчерпывающего сообщения, когда я делаю возврат в (intDef) {..} и случайно пропускаю один из возможных типов?

Иное всегда будет необходимо здесь.Не уверен насчет предупреждения lint.

Есть ли у AS намерение (alt + enter, чтобы быстро добавить все варианты intDef?

Да.

Как сейчас,вместо того, чтобы отправлять функции, мы обсуждаем, когда следует использовать эту микрооптимизацию!

Суммирование всего разговора enum примерно с 2012 года!

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

Нет. Это фактически то же самое, что перечисление.

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