【Kotlin】注解 @JvmOverloads

一、注解定义

@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 的用法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容