一尘不染

为什么要使用双冒号(::)在Kotlin上课?

java

我们知道,双冒号(::)用于科特林,如获得功能(可赎回)的参考String::compareTo"string"::compareTo

在Java中,我们使用SomeClass.classsomeInstance.getClass()获取类。为什么在科特林我们使用SomeClass::classsomeInstance::class,而class不是一个函数/方法?

println(String::compareTo)
// output: fun kotlin.String.compareTo(kotlin.String): kotlin.Int
println("string".compareTo("strong"))
// output: -6
println(String::class)
// output: class kotlin.String
println("string".class)
// compile error

阅读 411

收藏
2020-12-03

共1个答案

一尘不染

::在Kotlin中,有关元编程的内容包括方法引用,属性引用和类文字。请参阅有关类文字的讨论

2020-12-03