Изменить значение nullability параметра переопределенной функции в kotlin

Я реализую интерфейс сторонней библиотеки (java). Я переопределяю функцию со следующей подписью:

override fun onCallback(name: String?) { } 

Я не могу изменить следующее:

 override fun onCallback(name: String) { } 

Каков эффект этого? Что произойдет, если базовая библиотека вызывает onCallback(null) ?

Типы, поступающие из Java, являются типами платформ (в этом случае этот параметр имеет тип String! . Если параметр не аннотируется в Java, вам решать, может ли он когда-либо иметь null значение, и вы должны отметить тип параметра в Kotlin соответственно.Если вы помечаете его как не-nullable, но Java-код передает ему null , вы получите исключение во время выполнения – Kotlin генерирует проверки таких параметров, которые вы можете посмотреть, декомпилируя сгенерированный байт-код.

Также более подробно см. Официальные документы о нулевой безопасности и типах платформ .

Intereting Posts