我试图有一个包含多种类型的可变列表,说我的数据类型和字符串。我有我的数据类 MyObject
data class MyObject(val date: Date?, val description: String?)
所以我期待类似下面的列表:
var myList = mutableListOf<MyObject, String>()
有什么办法可以在 Kotlin 中存档吗?
原文由 Ti3t 发布,翻译遵循 CC BY-SA 4.0 许可协议
我试图有一个包含多种类型的可变列表,说我的数据类型和字符串。我有我的数据类 MyObject
data class MyObject(val date: Date?, val description: String?)
所以我期待类似下面的列表:
var myList = mutableListOf<MyObject, String>()
有什么办法可以在 Kotlin 中存档吗?
原文由 Ti3t 发布,翻译遵循 CC BY-SA 4.0 许可协议
在这种类型已知且仅限于两个元素的特定情况下,我会使用 Pair:
var myList = mutableListOf<Pair<MyObject,String>>()
完整代码片段如下:
import java.util.Date
data class MyObject(val date: Date?, val description: String?)
var myList = mutableListOf<Pair<MyObject,String>>()
fun main(args: Array<String>) {
val first = MyObject(Date(), "time1")
val second = "info1"
myList.add(Pair(first, second))
println(myList[0])
}
原文由 Krishnamoorthy Karthikeyan 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答938 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答817 阅读✓ 已解决
1 回答621 阅读✓ 已解决
2 回答930 阅读
2 回答868 阅读
1 回答803 阅读
您可以创建一个列表,将两种类型的第一个公共超类型作为其类型参数,在本例中为
Any
:当然这样你会“丢失”列表中项目的类型,每次你得到一个列表项目你只会通过类型
Any
知道它:此时您可以进行类型检查以查看项目的类型: