我有一个android EditText,我正在设置文本属性.
通常我会用:
editText.text = "Mars"
Run Code Online (Sandbox Code Playgroud)
但是setter返回一个Editable,所以看起来Kotlin试图用失败的String替换返回的Editable.
所以"解决方法"是:
editText.setText("Mars")
Run Code Online (Sandbox Code Playgroud)
setText()当使用这种类型的setter时,有没有更漂亮的方法(而不是)设置文本?
hot*_*key 15
在科特林,作业不是表达.赋值表达式几乎没有真正的用例,并且往往会使代码可读性变差,更不用说if (a = b)bug了,所以它们被排除在语言之外.您可以在本次讨论中找到Kotlin团队的更多评论.
实际上不可能使用property = value语法从Java setter返回值,并且您描述的变通方法是获取该值的有效方法.
反过来,Kotlin属性setter不能返回一个值,例如,一个this用于调用链接返回值的常见Java习惯用Kotlin 函数表示接收器:
MyClass c = new MyClass()
.setFoo(x)
.setBar(y)
.setBaz(z);
Run Code Online (Sandbox Code Playgroud)
Kotlin(使用apply):
val c = MyClass().apply {
foo = x
bar = y
baz = z
}
Run Code Online (Sandbox Code Playgroud)
也可以看看:
| 归档时间: |
|
| 查看次数: |
416 次 |
| 最近记录: |