Object expressions (Playground)
Description
Read about object expressions that play the same role in Kotlin as anonymous classes in Java.
Add an object expression that provides a comparator to sort a list in a descending order using java.util.Collections class. In Kotlin you use Kotlin library extensions instead of java.util.Collections, but this example is still a good demonstration of mixing Kotlin and Java code.
Javaの匿名クラス(無名クラス)と同じ役割を持つKotlinの オブジェクト式 を読んでください。
java.util.Collections クラスを使用してリストを降順にソートするコンパレータを提供するオブジェクト式を追加してください。Kotlinでは java.util.Collections の代わうにKotlinのライブラリ拡張を使用しますが、この例ではKotlinとJavaのコードを混合させることができます。
Code
import java.util.*
fun getList(): List<Int> {
val arrayList = arrayListOf(1, 5, 2)
Collections.sort(arrayList, object : Comparator<Int> {
override fun compare(x: Int, y: Int) = y - x
})
return arrayList
}
Memo
- オブジェクト式
- クラスを再利用せずに、1度だけ使用するときに便利
- 変数に格納するか、関数に渡すパラメータとして使用する