2016-03-02 69 views
13

爲什麼禁止從類主構造自動生成可見Java的許多構造與默認PARAMS喜歡這個?JvmOverloads註釋類主構造

@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 

此註釋不適用於針對「類」

回答

30

它不禁止的,你只是申請@JvmOverloads到錯誤的目標。註釋主構造的正確方法是顯式地指定與@JvmOverloadsconstructor關鍵字:

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 
+0

現在我明白了,感謝名單 – Odysseus

+0

請注意:它看起來像有一個在@JvmOverloads一些bug。當我在自定義視圖上使用它時,即時運行會失敗,但是當我自己定義構造函數時它會起作用 – Gavriel

相關問題