Функция, возвращающая специальный объект в Котлине

В настоящее время у меня есть частная функция, которая возвращает объект Pair<User, User> . Первый пользователь – отправитель чего-то, второй пользователь – получатель этой вещи.

Я думаю, что эта Pair<User, User> недостаточно понятна или чиста, если вам нравится, хотя это просто частная функция.

Можно ли вернуться с помощью специального объекта, например:

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

и используйте возвращаемое значение следующим образом:

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

?

Если нет, то какова цель ad-hoc объекта в Котлине?

Поскольку тип не может быть обозначен на языке, используйте вывод типа возвращаемого значения:

 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 } 

Другим вариантом было бы создание класса данных:

 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 }