簡體   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