Вызов может быть удобен для быстрого рефакторинга.
льку я обновил свой проект до версии 27 SDK и подключил плагины для библиотеки поддержки до версии27.0.0
Мне нужно было изменить мой код.
С участием26.1.0
Я могу просто использоватьgetContext()
(с Котлинымcontext
) в моемFragment
(android.support.v4.app
) и у меня нет проблем с nullability, но так как я использую Kotlin, у меня есть проблема с версией27.0.0
, все моиcontext
звонки больше не работают, мне нужен оператор безопасности, какcontext!!
, но так как я лично считаю, что делать это каждый раз, когда я просто заставляю себя, я работаю в обход
override fun getContext() = super.getContext()!!
Другая вещь, которая меняется (внезапно, и именно поэтому я спрашиваю), это методыonCreateView()
а такжеonViewCreated()
, ВonCreateView
инфлятор больше не может быть нулевым, поэтому мне нужно было изменить сигнатуру функции, чтобы она корректно переопределялась изonCreateView(inflater: LayoutInflater?...)
вonCreateView(inflater: LayoutInflater...)
и то же самое дляcreatedView
параметр вonViewCreated
.
Так что теперь мне было интересно, почему, особенно (для Kotlin) очень некрасивоgetContext()
изменение было сделано и направлено кhttps://developer.android.com/sdk/support_api_diff/27.0.0/changes.html.
Но подождите, по-видимому, они не изменили это? Итак, теперь мой вопрос: делаю ли я что-то не так или они действительно это изменили, и если да, то я могу спросить их, почему?
Кстати, то же самое относится и кgetActivity()
, Я думаюmHost == null
проверка была добавлена иgetActivity
метод даже окончательный, поэтому я не могу использовать свой обходной путь, что делает его очень и очень уродливым. На самом деле в исходных файлах методы выглядят одинаково, но26.1.0
имеет тип возврата KotlinContext!
а также27.0.0
тип возвратаContext?
.