java - Kotlin 中的方法的返回类型应该是什么,该方法的值可以为 null 并且将从 Java 调用?

标签 java kotlin nullpointerexception option-type nullable

当方法可能返回 null 时,我总是在 Kotlin 中使用可空类型作为方法的返回类型,但我的 Kotlin 代码中的某些方法也可以从 Java 调用。

我的 Java 代码中刚刚出现 NullPointerException,因为我忘记在调用其中一个方法后检查是否可为空。在 Kotlin 中不会发生这种情况,因为编译器会强制我检查这一点。

处理这种情况的正确方法是什么?我是否应该仅在 Kotlin 内专用的代码中使用可空类型作为方法的返回类型,并始终在 Kotlin 方法中返回一个可选值(该方法也将从 Java 代码中调用)?

最佳答案

Kotlin 会在字节码中用 @Nullable 注释此方法,并且 IDEAEclipse (with some extra configuration)应该能够检测到问题。如果您想让您的体验更接近 Kotlin(即使没有达到),您可以将严重性级别提高到错误。

我不建议从所有“可空”方法返回Optional,原因有两个:

  1. Optional 使用起来比例如更不方便。在 Scala 中。

  2. 您使用的库(包括标准库)不会这样做(甚至可能不使用注释:( ),因此您已经需要处理返回 null 的方法。

    <

关于java - Kotlin 中的方法的返回类型应该是什么,该方法的值可以为 null 并且将从 Java 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59327688/

相关文章:

java 安装java的文件夹名称

java - Mapsforge 0.4.0 和 Eclipse 出现 NoClassDefFoundError,无法构建

android - RecyclerView 添加了一个 "empty"布局项,当我单击它时,应用程序崩溃了

java - 什么是NullPointerException,我该如何解决?

java - 什么是NullPointerException,我该如何解决?

java - EditText 无法转换或无法获取

java - Android删除的联系人重新出现而WhatsApp联系人不出现

android - 如何调整 LazyVerticalGrid 中项目的高度?

kotlin - 如何按HashMap分组?

java - 尝试获取可序列化对象的输入时出现 NullPointerException