JvmName 注解在 Kotlin 中的应用

  • Android,Kotlin,注解,JvmName

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