目前我有一个返回Pair<User, User>对象的私有函数.第一个用户是某个东西的发送者,第二个用户是该东西的接收者.
我认为这Pair<User, User>还不够自我解释 - 或者如果你喜欢的话也很干净 - 尽管它只是一个私人功能.
是否可以使用这样的ad-hoc对象返回:
private fun findUsers(instanceWrapper: ExceptionInstanceWrapper): Any {
return object {
val sender = userCrud.findOne(instanceWrapper.fromWho)
val receiver = userCrud.findOne(instanceWrapper.toWho)
}
}
Run Code Online (Sandbox Code Playgroud)
并使用返回值,如下所示:
// ...
val users = findUsers(instanceWrapper)
users.sender // ...
users.receiver // ...
// ...
Run Code Online (Sandbox Code Playgroud)
?
如果没有,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
}
Run Code Online (Sandbox Code Playgroud)
另一种选择是设计一个数据类:
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |