¿Cómo usar setter como obj.value = "" cuando el setter tiene valor devuelto?

Tengo un EditText android en el que estoy configurando la propiedad de text.

Normalmente usaría:

editText.text = "Mars" 

Pero el colocador devuelve un Editable por lo que parece que Kotlin está tratando de replace el Editable devuelto con una Cadena que falla.

Entonces la "solución alternativa" es:

 editText.setText("Mars") 

¿Hay forms más bonitas (en lugar de setText() ) de configurar el text cuando se usa este tipo de setter?

En Kotlin, las asignaciones no son expresiones. Las expresiones de asignación tienen pocos casos de uso real y tienden a empeorar la legibilidad del código, sin mencionar los errores if (a = b) , por lo que se quedaron fuera del lenguaje. Puede encontrar más comentarios del Equipo Kotlin en esta discusión .

En realidad, es imposible get el valor devuelto por un colocador de Java utilizando la syntax de property = value , y la solución alternativa que describió es la forma válida de get ese valor.


Los desarrolladores de properties de Kotlin, a su vez, no pueden devolver un valor, y, por ejemplo, una expresión común de Java de devolver this valor para el encadenamiento de llamadas se expresa con las funciones de Kotlin con el receptor :

 MyClass c = new MyClass() .setFoo(x) .setBar(y) .setBaz(z); 

Kotlin (usando apply ):

 val c = MyClass().apply { foo = x bar = y baz = z } 

Ver también:

  • Cómo convertir la expresión de asignación de Java a Kotlin
  • ¿Cuál es la diferencia entre shouldbe y shouldbee exactamente en KotlinTest?
  • ¿Cómo pasar arguments a la secuencia de commands kotlin?
  • ¿Cómo inicializo MutableList de Kotlin para vaciar MutableList?
  • Kotlin Assign Delegate después de statement de variable
  • Mutar cadena de una extensión
  • Kotlin || El elemento Recycleview no está inflando: código inalcanzable en cada método reemplazado de RecycleView.Adapter
  • Cambio observable a condición cumplida - RxJava2
  • Moshi / Kotlin - ¿Cómo serializar cadenas NULL JSON en cadenas vacías?
  • Información de Facebook no se muestra
  • Hamburger Icon No se muestra
  • La notificación de consulta de dominio no se activa con Kotlin