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 -

本文链接 https://spacepage.top/archives/2019.09.03-Kotlin注解之JvmName.html,欢迎转载,转载请注明出处。

友情链接
网站统计
  • 网站已运行:354天
  • 文章总数:102 篇
  • 最后编译:
    2020-10-20 23:10:02
  • CopyRight © spacepage.top
  • sitemap