Я заметил, что при использовании синтетической привязки Kotlin возвращаемое представление не равно нулю (Kotlin вернет View!
). Но для меня это не имеет особого смысла, поскольку findCachedViewById
может фактически возвращать нулевые результаты, что означает, что представления могут быть нулевыми.
public View _$_findCachedViewById(int var1) {
if(this._$_findViewCache == null) {
this._$_findViewCache = new HashMap();
}
View var2 = (View)this._$_findViewCache.get(Integer.valueOf(var1));
if(var2 == null) {
View var10000 = this.getView();
if(var10000 == null) {
return null;
}
var2 = var10000.findViewById(var1);
this._$_findViewCache.put(Integer.valueOf(var1), var2);
}
return var2;
}
Так почему же они не являются обязательными в данном случае? Почему Kotlin просто не возвращает View?
при использовании синтетической привязки, чтобы разработчики были вынуждены проверять допустимость значений NULL при работе с представлениями?
Может быть, это просто потому, что я новичок в Kotlin, но я думаю, что это немного интуитивно понятно, поскольку переменная не является необязательной, но мы все равно должны проверять, действительно ли View не является нулевым.
Итак, в этом случае имеет смысл делать что-то вроде приведенного ниже кода?
view?.let {
// handle non null view here
}