Скрытие стандартных конструкторов по умолчанию

Есть ли способ в Котлине скрыть (разместить где-нибудь еще) конструкторы по умолчанию представления? Может быть, создать подвид или расширение или что-то подобное.

В настоящее время все мои взгляды выглядят так: это немного подробный:

class MyView(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int): View(context, attrs, defStyleAttr, defStyleRes) { constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int): this(context, attrs, defStyleAttr, 0) constructor(context: Context, attrs: AttributeSet?): this(context, attrs, 0, 0) constructor(context: Context): this(context, null, 0) } 

Вы можете использовать аргументы по умолчанию :

 class MyView(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0): View(context, attrs, defStyleAttr, defStyleRes) 

Если вам нужно вызвать эти конструкторы из Java, рассмотрите возможность применения аннотации @JvmOverloads к конструктору:

 class MyView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0): View(context, attrs, defStyleAttr, defStyleRes) 

Более или менее правильное форматирование для ответа @ udalov:

 class MyView(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0) : View(context, attrs, defStyleAttr, defStyleRes) 

или

 class MyView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0 ) : View(context, attrs, defStyleAttr, defStyleRes) { // .... }