首页 > 解决方案 > 如何理解 Android Studio 中的 Kotlin 文档语法

问题描述

例子

我将鼠标悬停ClassName::javaClass在我的 kotlin/android 项目中的一个实例上 - 并查看以下文档的预览javaClass

public val <T : Any> T.javaClass: Class<T>

问题

抱歉,如果这是一个基本问题,但如何翻译以上内容?是否有任何资源可供我阅读,可以让我了解这种类型的文档语法?

标签: javaandroidkotlin

解决方案


public val <T : Any> T.javaClass: Class<T>

这实际上是扩展属性。工作原理与扩展函数基本相同(实际上编译器将为继承自 的任何类型生成扩展 getter 函数Any)。

更简单的例子,没有泛型:

val String.withPrefix: String
    get() = "_$this"

fun test() {
    println("Hello".withPrefix) // prints "_Hello"
}

再举一个例子——现在是泛型类型:

val <T: Number> T.hexValue: String
    get() = convertToHex(this)

fun main(args: Array<String>) {
    val number: Double = 10.0
    println("Hex value of $number is ${number.hexValue}")
}

您要问的构造很奇怪,因为连接了泛型和扩展功能。但是,正如你所看到的,实际上只有非常简单的结构——只是看起来很奇怪。

查看更多关于扩展的信息:https ://kotlinlang.org/docs/reference/extensions.html#extension-properties

查看更多关于泛型的信息:https ://kotlinlang.org/docs/reference/generics.html


推荐阅读