Аннотации JvmOverloads для основного конструктора класса

Почему запрещается автогенерировать многие конструкторы, видимые для Java из основного конструктора класса с параметрами по умолчанию, которым это нравится?

@JvmOverloads
class Video(private val id: Long, val ownerId: Long, var title: String? = null, var imgLink: String? = null, var videoLink: String? = null,
        var description: String? = null, var created: Date? = null, var accessKey: String? = null, var duration: Long? = null,
        var views: Long? = null, var comments: Long? = null) : Entity

Эта аннотация не применима к целевому классу,

Ответ 1

Это не запрещено, вы просто применяете @JvmOverloads к неправильной цели. Правильный способ аннотации основного конструктора заключается в том, чтобы явно указать ключевое слово constructor с помощью @JvmOverloads до:

class Video @JvmOverloads constructor(
    private val id: Long,
    val ownerId: Long,
    var title: String? = null,
    var imgLink: String? = null,
    var videoLink: String? = null,
    var description: String? = null,
    var created: Date? = null,
    var accessKey: String? = null,
    var duration: Long? = null,
    var views: Long? = null,
    var comments: Long? = null
) : Entity