@JvmOverloads

#kotlin
#android development

Biasanya sering saya gunakan ketika saya ingin membuat class yang extends ke class lain, misalnya LinearLayout.

Tanpa @JvmOverloads

  class StateView: LinearLayout
  {
      constructor(context: Context) : super(context){
          init(context)
      }

      constructor(context: Context, attrs: AttributeSet): super(context, attrs){
          init(context)
      }

      constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
          init(context)
      }
    ...
  }

Dengan @JvmOverloads

  class StateView @JvmOverloads constructor(
          context: Context,
          attrs: AttributeSet? = null,
          defStyleAttr: Int = 0
  ) : LinearLayout(context, attrs, defStyleAttr)