繁体   English   中英

如何使用Kotlin中的现有比较器

[英]How to use existing comparators in Kotlin

@Suppress("UNCHECKED_CAST")
val comp = Integer::compare as Comparator<Int>

结果是:

java.lang.ClassCastException:
org.organicdesign.fp.xform.TransformableTest$testToImSortedSet$comp$1
cannot be cast to java.util.Comparator

我可以做这个:

val comp = Comparator{ a:Int, b:Int -> Integer.compare(a, b) }

要么

val comp = Comparator{ a:Int, b:Int -> a.compareTo(b) }

但是有更好的方法吗? 我觉得我不必为此创建新的包装函数。

您可以使用函数引用 ,而不是

val comp = Comparator { a: Int, b: Int -> Integer.compare(a, b) }

...只需这样写:

val comp = Comparator(Integer::compare)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM