美文网首页
【Kotlin】注解 @JvmOverloads

【Kotlin】注解 @JvmOverloads

作者: 果果_Zhen | 来源:发表于2021-02-19 17:11 被阅读0次

一、注解定义

@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CONSTRUCTOR)

@Retention(AnnotationRetention.BINARY)

@MustBeDocumented

public actual annotation class JvmOverloads

注解说明:指示Kotlin编译器为这个函数生成替代默认参数值的重载。

使用说明:该注解可以用在方法前,可以用在构造函数前。

二、举例说明

@JvmOverloads fun test(a: Int, b: Int = 0, c: String = "")

此时编译器将生成三个方法

public final void test(int a)

public final void test(int a, int b)

public final void test(int a, int b, String c)

三、应用场景:自定义 View 重载构造方法

图1 JvmOverloads 在自定义 View 时的使用

在使用 JvmOverloads 注解后,将生成三个构造方法,并分别调用 super 的构造方法。

但需要注意的是:defStyleAttr 的这个参数,这个参数是含有默认主题样式的,可以视情况更改这个默认值。具体请参照另一篇文章对于 defStyleAttr 的说明【Android】自定义 View 中 defStyleAttr 的用法

相关文章

网友评论

      本文标题:【Kotlin】注解 @JvmOverloads

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