使用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())