Мое предположение: я думаю, что контекст не может быть нулевым, если View не является нулевым.
Проверяя исходный код View.java
, мы можем увидеть:
public class View {
public View(Context context) {
mContext = context;
}
public final Context getContext() {
return mContext;
}
}
Как выможно видеть, mContext
инициализируется в конструкторе, и его ссылка не изменяется (mContext
ссылка не обновляется). Она всегда указывает на ссылку, полученную в конструкторе.Кроме того, getContext()
является окончательным.Таким образом, его нельзя переопределить, гарантируя, что getContext()
всегда будет выполнять приведенный выше код.
Если вы попытаетесь создать представление, передающее нулевой указатель (например, View someView = new View(null)
), ваше приложение будет аварийно завершено по другим причинам... Итак, mContext
(и getContext()
) не может быть нулевым, если представление не является нулевым.