为什么我不能在Kotlin中将字符串“ 20L”转换为Long?

时间:2018-07-20 01:18:33

标签: android kotlin

我知道我可以为长var aa分配10L。

现在我希望将字符串bb =“ 20L”转换为long,但是出现错误我的错误:对于输入字符串:“ 20L” ,为什么?

 val aa=10L 
 val bb="20L"

 try{
     val cc=bb.toLong()
 }catch (e:Exception){
    logError("My Error: "+e.message?:" None")
 }

添加的内容

我希望为密钥"AutoRestoreID"存储一个长值,该值在android:defaultValue="-1"android:defaultValue="-1L"之间是正确的吗?

还有,我不知道我在使用"AutoRestoreID"时是否只能将字符串值存储到键ListPreference中,你能告诉我吗?

<ListPreference
   android:key="AutoRestoreID"
   android:defaultValue="-1"              
/>

1 个答案:

答案 0 :(得分:9)

字符串“ 20L”不是有效数字(字符串“ 20”将是有效数字)。 “ L”可帮助编译器确定数字文字的类型(否则可能是Int而不是Long),但这是一个编译器(以及Kotlin语法)功能,就没有别的了。