Why getting class in Kotlin using double-colon (::)?

前端 未结 2 937

We know that double-colon (::) is used to get function (callable) reference in Kotlin, e.g. String::compareTo, \"string\"::compareTo.

相关标签:
2条回答
  • In Kotlin you can write Object::class, which will give you a KClass. KClass is not equivalent to the class Class that we know from Java. If you want to get the Java Class class you can write Object::class.java - i.e.: println("string"::class.java)

    Also in java, .class is not a method or a member - it is a special directive for the compiler to access the class. I guess each language select the syntax that makes most sense for it, and kotlin's creators decided to use ::

    0 讨论(0)
  • 2020-12-28 13:54

    :: in Kotlin is about meta-programming, including method references, property references and class literals. See discussion about class literals.

    0 讨论(0)
提交回复
热议问题