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?当使用合成绑定时,开发人员在处理视图时会被迫检查是否为空;
也许这只是因为我是Kotlin的新手,但我认为这有点反直觉,因为变量不是可选的,但我们仍然应该检查VIEw是否实际上不是null.
那么在这种情况下,做下面的代码是否有意义?
vIEw?.let { // handle non null vIEw here}解决方法 我想通了,我发帖后总能找到正确的SO问题:)
VIEw之后的单个感叹号实际上并不意味着视图不能像我预期的那样为null.
这answer到另一个问题基本上回答了我的确切问题.使用合成绑定时,VIEw实际上可以为null,但我们无法确定,因此是单个感叹号.
所以可以安全地假设我上面发布的代码 – 使用?.let {…}是完全可以接受的方式来处理视图,当你不确定它们是否已经在访问它们时已经初始化.
视图可能为null的情况非常罕见,但可能会发生.
总结以上是内存溢出为你收集整理的android – 具有合成绑定和可空性的Kotlin视图全部内容,希望文章能够帮你解决android – 具有合成绑定和可空性的Kotlin视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)