Llamando a un método con param nulo

En java podemos llamar a un método aMethod(val1 , val2)

con classObject.aMethod(null_if_Val1_NotAvailable,val2) Y dentro del método comprobaré que si val1 es nulo, lo inicializaré

Cómo hacer lo mismo en Kotlin. Lo intenté, pero está diciendo que Null no puede ser valor de tipo no nulo.

Puede usar valores pnetworkingeterminados:

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

Ahora puede usar el método pnetworkingeterminado como así:

 classObject.aMethod(val2 = "val2") 

Pruébalo de esta manera

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

Devuelva el tipo como desee.
Refiérase al tutorial de la function kotlin langauge

? después del tipo de datos le permite tener nulo. referir este enlace

El énfasis de Kotlin en la security nula. Si desea que una propiedad / tipo de retorno / parámetro / variable local sea nula, deberá usar types que aceptan valores nulados , al agregar un signo de interrogación al final de su tipo.

p.ej

 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 

Por lo tanto, para que su código funcione, todo lo que necesita es especificar esa function aMethod toma un tipo que aMethod :

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

Sin embargo, en kotlin, no se sugiere usar null aquí. Tenemos una mejor manera de lidiar con su situación. Usamos parameters pnetworkingeterminados , como sugiere nhaarman.

 fun aMethod(val1: SomeType = someDefaultValue, val2: OtherType) { //... } aMethod(val2 = OtherType()) 
  • Kotlin: ¿Cómo modificar un valor en un par?
  • Activando una interfaz en Kotlin para Android
  • rx-java2 Schedulers.io () steel invoca el método de mainThread
  • ¿Existe algún código de muestra de trabajo para crear las URL pre-firmadas de S3 en Kotlin?
  • Error de la aplicación porque la instancia de la aplicación lateinit no se ha inicializado
  • La publicación de controller no funciona en Kotlin, lo que está mal
  • ¿Por qué no puedo configurar oyente en Kotlin?
  • ¿Cómo sobrescribir el método al crear instancias de objects en Kotlin?
  • Error al intentar crear una instancia de una class Kotlin de Java
  • ¿Cómo get el elemento seleccionado de ListView en Kotlin?
  • En Kotlin, ¿cómo puedo groupBy tipo