fik*_*r4n 31 java operators kotlin
我们知道,双冒号(::)用于获取在科特林,如功能(可赎回)的参考String::compareTo,"string"::compareTo.
在Java中,我们使用SomeClass.class并someInstance.getClass()获取类.为什么在Kotlin我们使用SomeClass::class而someInstance::classwhile 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
Run Code Online (Sandbox Code Playgroud)
Lio*_*-On 28
在Kotlin你可以写Object::class,这将给你一个KClass.KClass不等同于我们从Java中知道的类Class.如果你想获得Java Class类,你可以写Object::class.java- 即:
println("string"::class.java)
同样在java中,.class不是方法或成员 - 它是编译器访问类的特殊指令.我想每种语言都选择最适合它的语法,而kotlin的创建者决定使用它::
| 归档时间: |
|
| 查看次数: |
7741 次 |
| 最近记录: |