if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1){
val callingPkg = referrer.host
когда я использую этот код в Kotlin для получения реферера действия, я сталкиваюсь с краткой sh:
java .lang.IllegalStateException: referrer не должно быть пустым
Причина, по которой реферер имеет значение null, но я прочитал код, который getReferrer уже пометил @Nullable
Почему IDE может уведомить меня о том, что это может привести к появлению Null? По сравнению с этим я пишу свой класс как:
public class LilyTest {
@Nullable
public Uri getUri(){
long millis = System.currentTimeMillis();
return millis %2 == 1 ? null:new Uri.Builder().scheme("android-app").authority("mReferrer").build();
}
}
, когда я использую
val pkg = LilyTest().uri.host
. Я могу получить ошибку, пометить строку красным и объяснить: «Только безопасно (?.) Или не -принято (!!.) разрешены вызовы на обнуляемом получателе типа Uri? "
Мой вопрос: почему я не могу получить уведомление об ошибке при использовании referrer.host
, есть ли различия?