前言
获取静态已知Kotlin类的引用
使用::class
val c = MyClass::class
若要获得 Java 类引用, 需在 KClass 实例上使用 .java 属性
val c = MyClass::class
c.java
通过已有的对象获取类的引用
也是用::class获取
val widget: Widget = ……
assert(widget is GoodWidget) { "Bad widget: ${widget::class.qualifiedName}" }
获取函数引用
还是使用 :: 操作符
范例
fun isOdd(x: Int) = x % 2 != 0
fun main() {
val numbers = listOf(1, 2, 3)
isOdd(4) //这是函数调用
println(numbers.filter(::isOdd)) //这里的::isOdd是函数引用
}
::isOd