kotlin/java是否有类似TryParse()的东西?
我需要将3个editText转换为Double并进行自动计算。问题是:在Java中,如果editText字符串为null,则使用Double.parseDouble()
会引发异常,因此我必须使用try-catch。在Kotlin中,我必须使用toDoubleOrNull
检查“if”if是否为null
现在,有了2个editText,我必须做val a = firstDobule + secondDouble
,然后val b = a + 2
但使用上述方法,我无法分离计算:它需要同时转换所有3个editText,我想同时转换一个单一的editText
为了让您更好地理解,以下是C#中的代码:
Double.TryParse(firstEditText.Text, out Double firstDouble);
Double.TryParse(secondEditText.Text, out Double secondDOuble);
Double a = firstDouble + secondDOuble;
Double b = a + 2;
在C#中,使用TryParse不会引发任何异常,也不需要手动检查是否为null。 我想这样做,但在Kotlin或Java中
# 1 楼答案
您可以为
EditText
编写一个扩展函数,将其文本值作为double返回这假设您希望在输入不可解析的情况下得到0。然后,您可以轻松读取值:
# 2 楼答案
我认为@Pawel的做法是正确的,但是,我会定义一个extension property而不是一个扩展函数,因为它在语义上似乎更合适:
用法如下所示: