当方法可能返回 null 时,我总是在 Kotlin 中使用可空类型作为方法的返回类型,但我的 Kotlin 代码中的某些方法也可以从 Java 调用。
我的 Java 代码中刚刚出现 NullPointerException,因为我忘记在调用其中一个方法后检查是否可为空。在 Kotlin 中不会发生这种情况,因为编译器会强制我检查这一点。
处理这种情况的正确方法是什么?我是否应该仅在 Kotlin 内专用的代码中使用可空类型作为方法的返回类型,并始终在 Kotlin 方法中返回一个可选值(该方法也将从 Java 代码中调用)?
最佳答案
Kotlin 会在字节码中用 @Nullable
注释此方法,并且 IDEA和 Eclipse (with some extra configuration)应该能够检测到问题。如果您想让您的体验更接近 Kotlin(即使没有达到),您可以将严重性级别提高到错误。
我不建议从所有“可空”方法返回Optional
,原因有两个:
Optional
使用起来比例如更不方便。在 Scala 中。您使用的库(包括标准库)不会这样做(甚至可能不使用注释:( ),因此您已经需要处理返回 null 的方法。
<
关于java - Kotlin 中的方法的返回类型应该是什么,该方法的值可以为 null 并且将从 Java 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59327688/