如何使用Kotlin安全地强制转换readLine()的结果以防止类型不匹配

PGMacDesign

我观看/阅读的许多Kotlin教程都包含以下代码行:

var number = Integer.valueOf(readLine())

尽管以前可以正常工作,但现在使用Android studio和Kotlin版本时会引发编译器错误1.3.50它表示找到的类型为String?,要求的类型为,类型不匹配String

当然,我知道为什么会这样,我知道用户可以通过控制台传递null或空值,因此它需要具有可选的null声明,但是我想了解如何解决编译器错误并保持类似状态代码而无需太多更改。

虽然我可以使用以下两行代码:

var number = Integer.valueOf(readLine()!!)

var number = Integer.valueOf(readLine() as String)

我相信那些人可能会抛出这里概述的不同异常

我知道我可以使用以下代码“解决”此问题:

var number : String? = readLine();
if(number == null){
    number = "0"
}
val number2 = Integer.valueOf(number);

但这似乎效率极低。有使用本地Kotlin代码执行此操作的更短方法吗?

托德

如果仅调用toInt()from的结果readLine(),则如果提供的值不是实际的Integer,则将获得异常。为了避免出现异常,我们可以使用toIntOrNull()Kotlin标准库中的内容。

val x= readLine()?.toIntOrNull() ?: 0

在这种情况下,我们读取该行(作为String?),如果该行不为空,则对其进行调用toIntOrNull()如果是不为空,我们有我们的答案。否则,我们将其0用作默认值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何安全地检索数据以防止SQL注入

来自分类Dev

Java自类型方法:无法安全地强制转换为实际类型

来自分类Dev

可以将哪些数字类型安全地强制转换为intptr_t?

来自分类Dev

如何安全地改变指针的类型

来自分类Dev

对于非CF类型,可以安全地使用匹配的CFBridging调用来进出ARC吗?

来自分类Dev

对于非CF类型,可以安全地使用匹配的CFBridging调用来进出ARC吗?

来自分类Dev

如何在bash中明确安全地强制使用内置命令

来自分类Dev

如何安全地和惯用地在数字类型之间转换?

来自分类Dev

如何强制提交Spring-安全地休眠事务

来自分类Dev

如何安全地从purrr中提取结果?

来自分类Dev

如何安全地从purrr中提取结果?

来自分类Dev

如何使用智能指针安全地销毁不完整对象类型的类?

来自分类Dev

如何安全地更改变量intellij的类型?

来自分类Dev

商类型如何帮助安全地公开模块内部?

来自分类Dev

NSKeyedUnarchiver,如何安全地解码Any类型

来自分类Dev

如何安全地将varchar(255)转换为int?

来自分类Dev

如果“派生”没有向Base添加新成员(并且是POD),那么可以安全地进行哪种类型的指针强制转换和取消引用?

来自分类Dev

如果“派生”没有向Base添加新成员(并且是POD),那么可以安全地进行哪种类型的指针强制转换和取消引用?

来自分类Dev

安全地使用WeakReference

来自分类Dev

Null安全地检查Kotlin格式

来自分类Dev

如何使用GCD安全地锁定变量?

来自分类Dev

如何使用PouchDB安全地连接到Cloudant?

来自分类Dev

如何通过通用模板“安全地”使用多态?

来自分类Dev

如何安全地在主线程上使用[NSTask waitUntilExit]?

来自分类Dev

如何使用Net :: OpenSSH安全地写入远程文件

来自分类Dev

如何使用open()安全地设置标志?

来自分类Dev

如何安全地使用coxph和子集或权重?

来自分类Dev

如何使用TeamCity安全地进行生产发行?

来自分类Dev

如何安全地使用C中的枚举?

Related 相关文章

  1. 1

    如何安全地检索数据以防止SQL注入

  2. 2

    Java自类型方法:无法安全地强制转换为实际类型

  3. 3

    可以将哪些数字类型安全地强制转换为intptr_t?

  4. 4

    如何安全地改变指针的类型

  5. 5

    对于非CF类型,可以安全地使用匹配的CFBridging调用来进出ARC吗?

  6. 6

    对于非CF类型,可以安全地使用匹配的CFBridging调用来进出ARC吗?

  7. 7

    如何在bash中明确安全地强制使用内置命令

  8. 8

    如何安全地和惯用地在数字类型之间转换?

  9. 9

    如何强制提交Spring-安全地休眠事务

  10. 10

    如何安全地从purrr中提取结果?

  11. 11

    如何安全地从purrr中提取结果?

  12. 12

    如何使用智能指针安全地销毁不完整对象类型的类?

  13. 13

    如何安全地更改变量intellij的类型?

  14. 14

    商类型如何帮助安全地公开模块内部?

  15. 15

    NSKeyedUnarchiver,如何安全地解码Any类型

  16. 16

    如何安全地将varchar(255)转换为int?

  17. 17

    如果“派生”没有向Base添加新成员(并且是POD),那么可以安全地进行哪种类型的指针强制转换和取消引用?

  18. 18

    如果“派生”没有向Base添加新成员(并且是POD),那么可以安全地进行哪种类型的指针强制转换和取消引用?

  19. 19

    安全地使用WeakReference

  20. 20

    Null安全地检查Kotlin格式

  21. 21

    如何使用GCD安全地锁定变量?

  22. 22

    如何使用PouchDB安全地连接到Cloudant?

  23. 23

    如何通过通用模板“安全地”使用多态?

  24. 24

    如何安全地在主线程上使用[NSTask waitUntilExit]?

  25. 25

    如何使用Net :: OpenSSH安全地写入远程文件

  26. 26

    如何使用open()安全地设置标志?

  27. 27

    如何安全地使用coxph和子集或权重?

  28. 28

    如何使用TeamCity安全地进行生产发行?

  29. 29

    如何安全地使用C中的枚举?

热门标签

归档