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

问题描述 投票:0回答:1

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

我在Java代码中刚刚得到了NullPointerException,因为在调用其中一种方法后,我忘记了检查可为空性。在Kotlin中不会发生这种情况,因为编译器会迫使我进行检查。

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

java kotlin nullpointerexception optional nullable
1个回答
1
投票

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

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

  1. Optional的使用方便性比例如在Scala中。

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

© www.soinside.com 2019 - 2024. All rights reserved.