在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ Kotlin中data class構(gòu)造函數(shù)的問題

Kotlin中data class構(gòu)造函數(shù)的問題

clipboard.png

Mybatis 報(bào)錯(cuò)說找不到
yc.ycjz.entity.Child matching [java.lang.Long, java.lang.Long]
這個(gè)構(gòu)造函數(shù)是什么原因???

回答
編輯回答
離夢(mèng)

data class 的聲明是 Long,從上面代碼上來也就可能是 kotlin.Long
那這個(gè) kotlin.Long 在生成 JVM 代碼時(shí),有可能是 long 也可能是 java.lang.Long
從上面的錯(cuò)誤來看,應(yīng)該是生成了 long 類型.
所以 你可以將 Long 聲明指定聲明為 java.lang.Long

2018年6月2日 01:07
編輯回答
哚蕾咪

data class 除非全部提供默認(rèn)值,否則是沒有空構(gòu)造函數(shù)的,而MyBatis映射成對(duì)象的時(shí)候是通過反射拿空構(gòu)造函數(shù),拿不到就會(huì)報(bào)錯(cuò)。
使用kotlin提供的kotlin noarg plugin可以解決,使用方法參考:https://kotlinlang.org/docs/r...

2018年8月1日 18:45
編輯回答
尐懶貓

你沒有把那兩個(gè)Long初始化吧。

如果構(gòu)造函數(shù)是無(wú)參的,就會(huì)用默認(rèn)的參數(shù)給屬性賦值。

NOTE: On the JVM, if all of the parameters of the primary constructor have default values, the compiler will generate an additional parameterless constructor which will use the default values. This makes it easier to use Kotlin with libraries such as Jackson or JPA that create class instances through parameterless constructors.

class Customer(val customerName: String = "")
參見:
https://huanglizhuo.gitbooks....
http://kotlinlang.org/docs/re...

我自己也是剛剛開始學(xué),如果說錯(cuò)了請(qǐng)指正,謝謝。

2018年4月14日 09:36
編輯回答
離觴
data class Child(
        var stuId: Long? = null,
        var schoolId: Long? = null,
        var stuName: String? = "",
        var stuAvatar: String? = ""
)
2017年9月18日 01:47