使用null参数调用方法

在java中,我们可以调用一个方法aMethod(val1 , val2)

classObject.aMethod(null_if_Val1_NotAvailable,val2)而在方法内我将检查,如果val1为空,我将初始化

如何在Kotlin中做同样的事情。 我试过,但是它的说法是空的不能是非null类型的值

您可以使用默认值:

 fun aMethod(val1: String = "default value", val2: String) 

现在可以使用默认方法如下所示:

 classObject.aMethod(val2 = "val2") 

试试这种方式

 fun printHello(name: String?): Unit { if (name != null) println("Hello ${name}") else println("Hi there!") // `return Unit` or `return` is optional } 

返回类型如你所愿。
参考kotlin langauge函数教程

? 在数据类型允许你有空之后。 参考这个链接

Kotlin强调零安全。 如果你想要一个属性/返回类型/参数/局部变量为null,你将不得不使用空的类型 ,通过在类型的末尾附加一个问号。

例如

 Foo foo = null // doesn't compile Foo? foo = null // compiles fun foo(foo: Foo) foo(null) // doesn't compile fun bar(foo: Foo?) bar(null) // compiles fun foo(): Foo = null // doesn't compile fun foo(): Foo? = null // compiles 

所以为了使你的代码有效,你需要的只是指定函数aMethod采用可空类型:

 fun aMethod(val1: SomeType?, val2) { //... } 

但是,在kotlin中,并不建议在这里使用null。 我们有更好的方法来处理你的情况。 我们使用nhaarman建议的默认参数

 fun aMethod(val1: SomeType = someDefaultValue, val2: OtherType) { //... } aMethod(val2 = OtherType())