gpt4 book ai didi

kotlin - 有什么方法可以像 JAVA Comparable 一样比较两个通用对象?

转载 作者:行者123 更新时间:2023-12-02 12:40:10 26 4
gpt4 key购买 nike

有什么方法可以像 JAVA Comparable 一样比较两个对象?

val o1: Any
val o2: Any
我知道它们是同一个类并且实现了 JAVA Comparable 。如果我将它们转换为 JAVA Comparable,我会收到警告我应该使用 Kotlin Comparable,但是 Kotlin 版本需要在编译时未知的 Type。我只需要这样的东西:
val result = (o1 as Comparable).compareTo(o2)

最佳答案

您可以使用 Comparable<Any> 。它会提示未经检查的强制转换,您可以抑制它,因为您知道如果类型匹配它是安全的。

val o1: Any = 2
val o2: Any = 4
if (o1 is Comparable<*> && o1::class == o2::class) {
@Suppress("UNCHECKED_CAST")
if (o1 as Comparable<Any> < o2) {
println("it's less")
}
}

关于kotlin - 有什么方法可以像 JAVA Comparable 一样比较两个通用对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62999641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com