91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-04 05:25:29 來源:腳本之家 閱讀:569 作者:lindroid 欄目:移動開發

1、前言

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

1.給data class的構造函數中的每一個參數都賦上默認值。比如:

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 指定無參注解列表

說實話,在看官方文檔時這一步并不好理解,這里只描述我經過自己的實踐之后得出的經驗。首先創建一個注解類,類名我們可以定為NoArg:

annotation class NoArg

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

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

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

@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中的無參注解

如果你的項目中已經添加了kotlin-jpa插件,那么基本上就不必單獨添加無參插件了。kotlin-jpa對無參插件做了包裝,當你使用 @Entity、 @Embeddable 與 @MappedSuperclass這幾個注解時,都會默認支持無參注解的。

3、參考文章

Kotlin官方文檔

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通州市| 务川| 抚宁县| 金沙县| 区。| 达孜县| 黑水县| 永兴县| 休宁县| 土默特右旗| 阳西县| 阿瓦提县| 河南省| 双柏县| 西和县| 云霄县| 嘉义县| 南康市| 东源县| 洪湖市| 宝鸡市| 崇文区| 壶关县| 新沂市| 仪征市| 满城县| 高清| 汾西县| 金秀| 江津市| 太和县| 银川市| 汝南县| 阿拉尔市| 衡阳市| 沧州市| 郴州市| 文水县| 麻江县| 平舆县| 会泽县|