Kotlin – Nombres de propiedad ofuscados

Estoy desarrollando una aplicación de Kotlin para Android y estoy teniendo un problema al integrar Google Sign In, cuando obtengo GoogleSignInAccount para extraer properties, los nombres de las properties parecen ofuscados (o de otra manera confusos), aquí hay una captura de pantalla de la manera en que las properties se ven en el depurador AS 2.3:

Depurador

Aquí está el fragment de código que intenta acceder a esas properties:

private fun googleSignInResult(data : GoogleSignInResult) { if (data.isSuccess) { if (data.signInAccount != null) { val account = data.signInAccount val authData = HashMap<String, String>() authData["id_token"] = account?.idToken.let { it } ?: return authData["id"] = account?.id.let { it } ?: return val task = ParseUser.logInWithInBackground("google", authData) task.continueWith { user -> if (task.isCancelled) { Log.d(TAG, "User cancelled Google login") } else if (task.isFaulted) { Log.d(TAG, "Failed: " + task.error) } else { this.user = task.result this.user?.put("email", account?.email) this.user?.put("name", account?.displayName) this.user?.put("firstName", account?.displayName) this.user?.saveInBackground({ error -> if(error != null) { Log.d(TAG, "Error: " + error.message) this.user?.deleteInBackground() ParseUser.logOutInBackground() } else { //Logged in successfully } }) } } } } } 

¿Alguien puede arrojar algo de luz sobre por qué las properties se ven así ?, cuando bash acceder a idToken o ID siempre son nulas, sin embargo, no se puede acceder a los nombres de las properties que están "ofuscados", ¿es esto un kotlin? error o es mi error?

¡Cualquier ayuda será muy apreciada!

El siguiente contenido fue publicado originalmente por @EugenPechanec como un comentario al cuerpo de la pregunta. Se aplica alguna modificación para promover la experiencia de lectura.


Los campos , un término de JVM, no son properties , que es un término de Kotlin. Estás en JVM, y lo que ves en el depurador son campos ofuscados que respaldan las properties de Kotlin. Los getters son públicos y conservan los nombres originales. Java .getDisplayName() es .displayName en Kotlin.

  • La aplicación de enum consiste en 3 adaptadores entre 2 actividades en Kotlin
  • La ejecución de Android Studio falló para la tarea compilefreeDebugKotlin
  • ¿Es posible ocultar variables del cierre de lambda?
  • Serializable en Kotlin
  • La class de testing de Child Kotlin ejecuta todas las testings de los padres
  • ¿Por qué hay NoClassDefFoundError con una class que existe?
  • ¿Cómo agregar una biblioteca de código fuente a IntelliJ (por ejemplo, de Github)?
  • Constructores en Kotlin
  • ¿Cuál es la forma correcta de tratar con los campos en Kotlin?
  • Temporizador RxJava2 y combinar
  • ¿Es posible un portlet Kotlin Liferay?