Kotlin中的@JvmOverloads注解的解释

发布时间 2023-06-09 14:16:01作者: 施行

在自定义一些控件的时候,我经常会直接写入需要的参数,比如:

class MaskedCardView(
    context: Context, attributeSet: AttributeSet? = null,
    defStyle: Int = com.google.android.material.R.attr.materialCardViewStyle
) : MaterialCardView(context, attributeSet, defStyle)

  上面这一段看着是没有问题,但是转成java的话,默认参数起不到作用

class MaskedCardView @JvmOverloads constructor(
    context: Context, attributeSet: AttributeSet? = null,
    defStyle: Int = com.google.android.material.R.attr.materialCardViewStyle
) : MaterialCardView(context, attributeSet, defStyle) 

  这样写,就可以覆盖三个构造函数了。