Función que devuelve un object ad-hoc en Kotlin

Actualmente tengo una function privada que devuelve un object Pair<User, User> . El primer usuario es el remitente de algo, el segundo usuario es el receptor de esa cosa.

Creo que este Pair<User, User> no es suficientemente explicativo por sí solo, o que lo puedes limpiar, aunque solo sea una function privada.

¿Es posible regresar con un object ad-hoc como este?

 private fun findUsers(instanceWrapper: ExceptionInstanceWrapper): Any { return object { val sender = userCrud.findOne(instanceWrapper.fromWho) val receiver = userCrud.findOne(instanceWrapper.toWho) } } 

y use el valor devuelto como este:

 // ... val users = findUsers(instanceWrapper) users.sender // ... users.receiver // ... // ... 

?

Si no, ¿qué sentido tiene el object ad-hoc en Kotlin?

Como el tipo no se puede denotar en el idioma, use la inferencia del tipo de retorno:

 class Example { private fun findUsers(instanceWrapper: ExceptionInstanceWrapper) = object { val sender = userCrud.findOne(instanceWrapper.fromWho) val receiver = userCrud.findOne(instanceWrapper.toWho) } fun foo() = findUsers(ExceptionInstanceWrapper()).sender } 

Otra opción sería diseñar una class de datos:

 class Example { private data class Users(val sender: User, val receiver: User) private fun findUsers(instanceWrapper: ExceptionInstanceWrapper): Users { return Users( sender = userCrud.findOne(instanceWrapper.fromWho), receiver = userCrud.findOne(instanceWrapper.toWho) ) } fun foo() = findUsers(ExceptionInstanceWrapper()).sender } 
  • El resultado de MailCore: htmlRenderingOperation siempre es nulo
  • Asignación de valores a ArrayList usando mapTo
  • Cómo crear una instancia de una class anónima que implementa una interfaz en Kotlin
  • Fondo de relleno de Android AlertDialog
  • Kotlin: ¿la mejor práctica para el rasgo o interfaz paralelo nulo / nulo seguro?
  • IntelliJ: error de Kotlin causa parpadeo del mouse y errores en el código
  • Bt Socket cerró la exception
  • Pausa / Reanudar un timer / retraso en RX
  • ¿Cómo crear una implementación de interfaz anónima en mi class de Kotlin y usarla?
  • ¿Cómo puedo llamar a un método principal desde un object complementario en kotlin?
  • GoogleApiClient: No se puede conectar y ejecutar manualmente el inicio de session después