繁体   English   中英

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

[英]What should be the returning type of a method in Kotlin which value can be null and will be called from Java?

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

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

处理这种情况的正确方法是什么? 我是否应该只在 Kotlin 内专门使用的代码中使用可空类型作为我的方法的返回类型,并且总是在我的 Kotlin 方法中返回一个 Optional,它也将被 Java 代码调用?

Kotlin 会在字节码中用@Nullable注解这个方法, IDEAEclipse(有一些额外的配置)应该都能检测到这个问题。 如果你想让你的体验更接近 Kotlin(即使没有达到),你可以将严重级别提高到错误。

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

  1. Optional使用起来远不如 Scala 中的 eg 方便。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM