arrays - 如何在Kotlin中将对象, bool 值和long值添加到数组中?

标签 arrays kotlin

我有这种方法

private fun checkRoomIdAndFindCinemaAndCheckIfRoomExists(paramRoomId: String?, paramCinemaId: String?, roomExists: Boolean?) : Array<Any> {

    val roomId = ValidationHandler.validateId(paramRoomId, "room id")

    val cinema = cinemaService.getCinemaById(paramCinemaId)

    val roomExists = roomRepository.existsByIdAndCinemaId(roomId, paramCinemaId!!.toLong())

    return arrayOf(roomId, cinema, roomExists)
}

我在这里想要做的是将roomId作为Long,cinema作为对象以及roomExists作为 bool(boolean) 值添加到数组中,并且返回类型应该是该数组。我怎样才能做到这一点?

后来我想从另一种方法访问这些。

最佳答案

我建议使用惯用的Kotlin代码,而不是已经建议的代码。当您要从一个函数返回多个值时,如果足够,您应该利用数据函数或现有的类,例如PairTriple。在这种情况下,Triple可帮助您:

private fun checkRoomIdAndFindCinemaAndCheckIfRoomExists(
    paramRoomId: String?,
    paramCinemaId: String?,
    roomExists: Boolean?
): Triple<Long, Any, Boolean.Companion> {
    //TODO
    return Triple(roomId, cinema, roomExists)
}

好消息是您可以确定类型,而不必从不安全的Array<Any>中强制转换任何内容。此外,数据类使您可以利用分解,如下所示:
val (roomId, cinema, roomExists) = 
    checkRoomIdAndFindCinemaAndCheckIfRoomExists("id1", "id2", true)

关于arrays - 如何在Kotlin中将对象, bool 值和long值添加到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53574983/

相关文章:

android - 错误 :Binary XML file line : Inflating class fragment

javascript - Jquery 在数组内创建数组

php - 使用对象访问 Variable 变量

javascript - 如何使用 Javascript every() 方法来检查数组中的一个元素与所有其他元素?

ruby-on-rails - 数组字段未被识别为属性

android - 房间数据库在 macbook pro m1 中不起作用

android - Kotlin Android Extensions 和 AndroidX 似乎没有正确转换 View

spring - 将某些异常排除在报告给 Sentry 之外

java - 将时间戳中的时间段 (AM/PM) 本地化为另一种语言

javascript - 当数组是变量时将 JavaScript 数组转换为 HTML 列表(导致类型错误)