Kotlin学习笔记——注解

@JvmField

指示Kotlin编译器不为该属性生成getter/setter,并将其作为字段公开。如果用来修饰val变量,就和const关键字的功能一样了

@JvmField var a: String = ""

编译后:
@JvmField
@NotNull
public static String a = "";
@JvmField val a: String = ""

编译后:
@JvmField
@NotNull
public static final String a = "";
var a: String = ""

编译后:
@NotNull
private static String a = "";

@NotNull
public static final String getA() {
    return a;
}

public static final void setA(@NotNull String var0) {
    Intrinsics.checkParameterIsNotNull(var0, "<set-?>");
    a = var0;
}

@JvmOverloads

指示Kotlin编译器为包含默认参数值的函数生成重载。

@JvmOverloads fun a(str: String, int: Int = 0) {}

@JvmStatic

指定从该元素中生成静态方法需要。注意:此注解只能用于被object关键字修饰的类的方法,或者companion object中的方法

object A {
    @JvmStatic fun a() {}
}
class A {
    companion object {
        @JvmStatic fun a() {}
    }
}

@JvmSynthetic

用来注解方法和字段,使得被标记的元素只能在kotlin代码中使用,在java代码中无法使用。

@JvmSuppressWildcards

用来注解类和方法,使得被标记元素的泛型参数不会被编译成通配符?详情请看第二个坑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值