JvmName 注解是 Kotlin 提供的一个可以变更编译器输出的注解。
@file:JvmName("StringUtil")
package com.example.jvmannotationsample
import android.net.Uri
fun String.toUri(): Uri {
return Uri.parse(this)
}
比如我们写了一个 StringExt.kt 文件,在没有加 @file:JvmName("StringUtil") 的情况下,我们的 Java 代码写法:
StringExtKt.toUri("https://binkery.com");
加上 @file:JvmName("StringUtil") 后,Java 代码写法:
StringUtil.toUri("https://binkery.com");
package com.example.jvmannotationsample.jvm_name
@JvmName("isOK")
fun String.isValid(): Boolean {
return isNotEmpty()
}
加上 @JvmName("isOK") 时,Java 代码写法:
StringExt.isOK("");
Kotlin 代码写法:
"".isValid()
Kotlin 代码不受 @JvmName 注解影响。
package com.example.jvmannotationsample.jvm_name
@get:JvmName("x")
@set:JvmName("changeX")
var x: Int = 23
加上 @get:JvmName() 和 @set:JvmName() 后,Java 代码写法:
public static void testJvmNameOnProperty() {
OnPropertiesSampleKt.changeX(111);
OnPropertiesSampleKt.x();
}
Kotlin 代码写法:
fun testJvmNameOnProperty() {
x = 1111
x
}
阅读原文 : JvmName 注解在 Kotlin 中的应用 https://droidyue.com/blog/2019/09/01/jvm-name-annotations-kotlin/
- EOF -
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: JvmName 注解在 Kotlin 中的应用
本文地址: https://binkery.com/archives/2019.09.03-Kotlin注解之JvmName.html