最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin之在Gradle中無參(no-arg)編譯器插件的使用詳解

 更新時(shí)間:2019年11月10日 16:19:38   作者:lindroid  
這篇文章主要介紹了Kotlin之在Gradle中無參(no-arg)編譯器插件的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、前言

最近在用Kotlin+Spring Boot寫一個(gè)后端項(xiàng)目,實(shí)體類習(xí)慣性地用了Kotlin中的data class,但是Spring要求要有一個(gè)無參的構(gòu)造函數(shù),否則可能會(huì)拋出java.sql.SQLDataException。要使data class能夠生成一個(gè)無參的構(gòu)造函數(shù),有兩種方法可以做到:

1.給data class的構(gòu)造函數(shù)中的每一個(gè)參數(shù)都賦上默認(rèn)值。比如:

data class User(
  @TableId(value = "id", type = IdType.AUTO)
  var id: Int?=-1,
  var userName: String?=null, //用戶名
  var age: Int?=null, //年齡
  var password: String?=null, //密碼
  var name: String?=null, //姓名
  var email: String?=null  //郵箱
) : Serializable

2.使用無參編譯器插件no-arg。下面我們就來看看這種方法。

2、具體步驟

2.1 添加插件依賴
首先需要在工程的build.gradle中添加no-arg插件的依賴,版本跟Kotlin的版本一致:

plugins {
    ……
  id "org.jetbrains.kotlin.plugin.noarg" version "1.3.41"
}

我用的是plugins的形式,如果你使用的是buildscript 塊的話就可以這樣添加:

buildscript {
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-noarg:1.3.41"
  }
}

apply plugin: "kotlin-noarg"

2.2 指定無參注解列表

說實(shí)話,在看官方文檔時(shí)這一步并不好理解,這里只描述我經(jīng)過自己的實(shí)踐之后得出的經(jīng)驗(yàn)。首先創(chuàng)建一個(gè)注解類,類名我們可以定為NoArg:

annotation class NoArg

然后最關(guān)鍵一步來了,回到工程的build.gradle文件,添加無參注解列表:

noArg {
  annotation("com.lindroid.projectname.annotation.NoArg")
}

annotation中的路徑就是我們創(chuàng)建的NoArg注解類所在的包目錄。路徑一定要寫好,不要出錯(cuò)!此時(shí)無參插件就已經(jīng)配置好了。我們可以在data class前面添加@NoArg注解,這樣編譯器就能為其生成一個(gè)無參構(gòu)造函數(shù)。使用示例如下:

@NoArg
data class User(
  @TableId(value = "id", type = IdType.AUTO)
  var id: Int?,
  var userName: String?, //用戶名
  var age: Int?, //年齡
  var password: String?, //密碼
  var name: String?, //姓名
  var email: String?  //郵箱
) : Serializable

2.3 kotlin-jpa中的無參注解

如果你的項(xiàng)目中已經(jīng)添加了kotlin-jpa插件,那么基本上就不必單獨(dú)添加無參插件了。kotlin-jpa對(duì)無參插件做了包裝,當(dāng)你使用 @Entity、 @Embeddable 與 @MappedSuperclass這幾個(gè)注解時(shí),都會(huì)默認(rèn)支持無參注解的。

3、參考文章

Kotlin官方文檔

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android編程之陰影(Shadow)制作方法

    Android編程之陰影(Shadow)制作方法

    這篇文章主要介紹了Android編程之陰影(Shadow)制作方法,結(jié)合實(shí)例形式分析了Android陰影效果實(shí)現(xiàn)函數(shù)setShadowLayer的具體使用技巧,需要的朋友可以參考下
    2016-10-10
  • android中Webview實(shí)現(xiàn)截屏三種方式小結(jié)

    android中Webview實(shí)現(xiàn)截屏三種方式小結(jié)

    本篇文章主要介紹了android Webview實(shí)現(xiàn)截屏,主要詳解了3種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Android實(shí)現(xiàn)自動(dòng)朗讀功能(TTS)

    Android實(shí)現(xiàn)自動(dòng)朗讀功能(TTS)

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)自動(dòng)朗讀功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 深入剖析Android系統(tǒng)中Service和IntentService的區(qū)別

    深入剖析Android系統(tǒng)中Service和IntentService的區(qū)別

    這篇文章主要介紹了Android系統(tǒng)中Service和IntentService的區(qū)別,與普通的服務(wù)相比,IntentService可以開啟單獨(dú)的線程來處理intent請(qǐng)求,需要的朋友可以參考下
    2016-04-04
  • 如何通過Android Stduio來編寫一個(gè)完整的天氣預(yù)報(bào)APP

    如何通過Android Stduio來編寫一個(gè)完整的天氣預(yù)報(bào)APP

    這篇文章主要介紹了通過Android Stduio來編寫一個(gè)天氣預(yù)報(bào)APP,具體的實(shí)現(xiàn)是通過調(diào)用天氣預(yù)報(bào)接口來獲得天氣數(shù)據(jù),再將查詢的天氣信息存儲(chǔ)在SQLiteDatabase中,界面則用LIstView和GridView來搭建
    2021-08-08
  • Android中ViewFlipper和AdapterViewFlipper使用的方法實(shí)例

    Android中ViewFlipper和AdapterViewFlipper使用的方法實(shí)例

    ViewFlipper和AdapterViewFlipper是Android自帶的一個(gè)多頁面管理控件,下面這篇文章主要給大家介紹了關(guān)于Android中ViewFlipper和AdapterViewFlipper使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 為什么不要在?Flutter?中使用全局變量

    為什么不要在?Flutter?中使用全局變量

    這篇文章主要介紹了為什么不要在Flutter中使用全局變量,全局變量是公共變量,可以被Flutter程序中的每個(gè)方法和對(duì)象訪問,全局變量是局部變量的替代品,它們?cè)诜椒ㄖ袆?chuàng)建并在該方法中訪問
    2022-08-08
  • Android 2.3 撥號(hào)上網(wǎng)流程從源碼角度進(jìn)行分析

    Android 2.3 撥號(hào)上網(wǎng)流程從源碼角度進(jìn)行分析

    SIM卡實(shí)現(xiàn)撥號(hào)上網(wǎng)功能之前需要設(shè)置一番,這些設(shè)置步驟究竟做了哪些事情呢?我們現(xiàn)在就從源碼的角度進(jìn)行分析
    2013-01-01
  • android 日志文件LogUtils實(shí)例

    android 日志文件LogUtils實(shí)例

    這篇文章主要介紹了android 日志文件LogUtils實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Android水波紋載入控件CircleWaterWaveView使用詳解

    Android水波紋載入控件CircleWaterWaveView使用詳解

    這篇文章主要為大家詳細(xì)介紹了Android水波紋載入控件CircleWaterWaveView使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01

最新評(píng)論

理塘县| 洛川县| 湟中县| 开化县| 清丰县| 连城县| 昭通市| 胶州市| 铁力市| 普宁市| 壤塘县| 青川县| 凤山县| 化隆| 涿州市| 临夏县| 朝阳区| 蒲城县| 长沙市| 聂荣县| 开江县| 古蔺县| 揭阳市| 屯门区| 沾益县| 惠东县| 东宁县| 牙克石市| 迁西县| 凉城县| 祁连县| 盘锦市| 清镇市| 汾西县| 新干县| 五家渠市| 钟山县| 区。| 巴彦淖尔市| 富川| 息烽县|