函数返回Kotlin中的临时对象

目前我有一个私人的功能,返回一个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 // ... // ... 

如果不是,Kotlin的特别对象有什么意义?

由于该类型不能用语言表示,所以使用返回类型推断:

 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 }