java - 如何理解 Android Studio 中的 Kotlin 文档语法
问题描述
例子
我将鼠标悬停ClassName::javaClass
在我的 kotlin/android 项目中的一个实例上 - 并查看以下文档的预览javaClass
:
public val <T : Any> T.javaClass: Class<T>
问题
抱歉,如果这是一个基本问题,但如何翻译以上内容?是否有任何资源可供我阅读,可以让我了解这种类型的文档语法?
解决方案
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
推荐阅读
- go - golang中没有固定长度的数组
- windows - 为什么我的 powershell 显示为盒装而不是 V 形?
- python - 谷歌下一步按钮上的硒驱动程序,NoSuchElementException
- javascript - 根据另一个下拉选择显示/隐藏下拉列表
- php - Mac 上的 XAMPP 安装问题 // bitnami-first-boot-123456
- android - Salesforce Marketing Cloud 是否支持 Android 应用程序链接
- javascript - 如果滚动为 100 像素,则将背景变为红色。(纯 JavaScript)
- python-3.x - 在 Tkinter GUI 框架中显示绘图
- bash - 排序 - 在排序列表中以相同字母开头的每个组前面加上任意字符串
- android - android中的多个按钮处理