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 

这个注解不适用于目标'class'

这是不被禁止的,你只是将@JvmOverloads应用到错误的目标。 注解主要构造函数的正确方法是在之前使用@JvmOverloads显式指定constructor关键字:

 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