Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin中的方法的返回类型应该是什么?该方法的值可以为null,并且将从Java调用?_Java_Kotlin_Nullpointerexception_Optional_Nullable - Fatal编程技术网

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

Kotlin中的方法的返回类型应该是什么?该方法的值可以为null,并且将从Java调用?,java,kotlin,nullpointerexception,optional,nullable,Java,Kotlin,Nullpointerexception,Optional,Nullable,我总是在Kotlin中使用nullable类型作为方法的返回类型,因为它可能返回null,但是我的Kotlin代码中的一些thode方法也可以从Java调用 我的Java代码中刚刚出现了一个NullPointerException,因为在调用其中一个方法后,我忘记了检查nullability。这不会发生在Kotlin中,因为编译器会强迫我检查它 处理这种情况的正确方法是什么?我是否应该仅在Kotlin中专门使用的代码中使用nullable类型作为方法的返回类型,并始终在Kotlin方法中返回一个

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

我的Java代码中刚刚出现了一个NullPointerException,因为在调用其中一个方法后,我忘记了检查nullability。这不会发生在Kotlin中,因为编译器会强迫我检查它


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

Kotlin将使用字节码中的
@Nullable
对该方法进行注释,并且两者都应该能够检测到问题。如果您想让您的体验更接近Kotlin(即使没有达到它),您可以将严重性级别提高到error

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

  • 可选
    使用起来远不如Scala中的方便

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


  • 当值可能不存在时,返回一个
    可选值
    对于定义合同是有意义的。另一方面,如果在查找时值必须存在,它也可以回退到
    null
    作为默认值。应该根据服务协议进行明智的选择。@Naman值可以为null,我的方法返回tKotlin中的ype是可空的。问题是,当从Java调用此方法时,我没有Kotlin编译器强制我检查可空性。您建议在Scala中返回选项吗?是的。异常可能类似于Spark的Java API:一个库,或它的一部分,专门用于从Java(或Kotlin)使用。