Используйте тип Any
, если свойство может содержать любой объект (но не null
, что означает, что оно должно быть немедленно инициализировано).
Используйте тип Any?
, если свойство может содержать какой-либо объект, или null
. Это эквивалентно типу Object
Java.
С точки зрения дизайна, конечно, лучше, если вы знаете реальный тип и можете использовать сильную систему типов Kotlin. Если вы или ваша команда определяете типы, вы можете ограничить их для реализации определенного интерфейса, чтобы вы не присваивали ему произвольные значения. Позже, при рефакторинге приложения вы можете удалить этот интерфейс и получать ошибки компиляции для всех вхождений, заставляя вас правильно его исправить.