美文网首页
kotlin注解

kotlin注解

作者: wayne777 | 来源:发表于2021-06-23 16:34 被阅读0次

@JvmField

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

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;
}

---------------------------------------------------------

@JvmField 
var a: String = ""

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


@JvmField 
val a: String = ""

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

@JvmOverloads

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

例1:简化自定义view的构造函数

class EmptyView : LinearLayout{

   @JvmOverloads 
   constructor (context: Context, attrs: AttributeSet? =null,defStyle: Int =0) :
       LinearLayout(context, attrs, defStyle) {
   }

}

编译后:
public class EmptyView extends LinearLayout {
 
    public EmptyView(Context context) {
        this(context, null);
    }
 
    public EmptyView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }
 
    public EmptyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
 
}

例2:

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

编译后:
   void a(String str){
       a(str,0)
   }
   void a(String a ,int i){
   }

@JvmStatic

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

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


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

@JvmSynthetic

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

@JvmSuppressWildcards

用来注解类和方法,使得被标记元素的泛型参数不会被编译成通配符

相关文章

  • Kotlin注解入门

    Kotlin使用annotation class关键字来定义注解。 一、定义注解 Kotlin不允许为注解定义注解...

  • Kotlin使用注解

    Kotlin的反射也提供了一些支持注解的API。 一、提取注解信息 Kotlin使用kotlin.Annotion...

  • Kotlin元注解

    Kotlin在kotlin.annotation包下提供了4个Meta注解(元注解),这4个元注解都用于修饰其他的...

  • Kotlin 注解的使用目标(Use-site Target)问

    Kotlin 注解的使用目标(Use-site Target)问题 在测试kotlin的注解的时候发现了些许问题 ...

  • Kotlin 注解

    Kotlin 的注解完全兼容 Java 的注解。 声明注解 可以通过向注解类添加元注解(meta-annotati...

  • 正确理解Kotlin中@JvmOverloads、@JvmSta

    看注解的名字就知道,这是kotlin 为了让Java更好的使用kotlin 编码而写的注解。 一 、@JvmOve...

  • Kotlin 学习笔记--Kotlin@JvmOverloads

    Kotlin 学习笔记--Kotlin@JvmOverloads 注解 这是一个Kotlin系列的教程,目的是为了...

  • Kotlin注解

    定义注解 注解使用 Kotlin的元注解 @Target:定义注解能够应用于哪些目标对象 (CLASS,FUNCT...

  • kotlin-spring-data-jpa 开发脚手架

    1. 基本常用类: 注解 自定义kotlin注解自定义日志切面注解@Log,获取当前用户注解@CurrentUse...

  • 25.Kotlin注解详解

    Kotlin注解详解 注解声明注解是将元数据附加到代码的方法。要声明注解,请将 annotation 修饰符放在类...

网友评论

      本文标题:kotlin注解

      本文链接:https://www.haomeiwen.com/subject/edbbyltx.html