入坑kotlin
*** kotlin連jpa
始終報反序列化錯誤,找了最后發現是日期類型搞的鬼,OffsetDateTime? 引入
compile 'org.hibernate:hibernate-java8:5.0.12.Final'大家在使用JPA 的時候,如果你的 Entity 中有 OffsetDateTime 類型的字段,那么你需要加入hibernate-java8 這個依賴
如果你用 Springboot 是1.5.9.RELEASE 那么使用 compile 'org.hibernate:hibernate-java8:5.2.12.Final'
如果你用 Springboot 是1.5.2.RELEASE 那么使用 compile 'org.hibernate:hibernate-java8:5.0.12.Final'
*** kotlin連ObjectMapper解析 json 字符串 為對對象
示例1:var javaType : JavaType = objectMapper.getTypeFactory().constructParametricType(HashMap::class.java, String::class.java, String::class.java)
var mapPara : HashMap<String,String> = objectMapper.readValue(remark,javaType) mapPara["x"]
示例2: var javaType : JavaType =objectMapper.getTypeFactory().constructParametricType(List::class.java, String::class.java)
val brandList: List<String> = objectMapper.readValue(brands, javaType)
示例3: var xDto : XtDTO = objectMapper.readValue(str, object : TypeReference<XtDTO>() {})
***?List<String> to String || String to List<String> class StringListConverter : TypeConverter<String, MutableList<String>>() {val separator = ","override fun getDBValue(model: MutableList<String>?): String =if (model == null || model.isEmpty())""elsemodel.joinToString(separator = separator) { it }override fun getModelValue(data: String?): MutableList<String> {return data?.split(separator)?.toMutableList() ?: mutableListOf()} }
OffsetDateTime工具類
https://blog.csdn.net/chinoukin/article/details/78875458
public static void main(String[] args) {DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");LocalDateTime time = LocalDateTime.now();String localTime = df.format(time);LocalDateTime ldt = LocalDateTime.parse("2018-01-12 17:07:05",df);System.out.println("LocalDateTime轉成String類型的時間:"+localTime);System.out.println("String類型的時間轉成LocalDateTime:"+ldt);}
LocalDateTime轉成String類型的時間:2018-01-12 17:36:52
String類型的時間轉成LocalDateTime:2018-01-12T17:07:05
https://www.cnblogs.com/skywang12345/p/string01.html
Kotlin List:
https://www.jianshu.com/p/712e87f83c31?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
List是有順序的數據結構,在Kotlin中提供了類似數組的訪問方式:
// List<out E> operator fun get(index: Int): E // MutableList<out E> operator fun set(index: Int, element: E): Eget()和set()函數重載了操作符后,就可以操作List了:
val list = mutableListOf("Hello", "World") println(list[0]) // 等價于 println(list.get(0)) list[1] = "" // 等價于 list.set(1, "")在Kotlin中,kotlin.collections.Collections.kt文件里定義了幾個常用的集合工具函數,主要涉及List部分,如下介紹:
一、listOf()函數
Collection.kt定義了三個參數不同的listOf()函數,可以方便地創建一個不可變的List:
fun <T> listOf(): List<T> fun <T> listOf(T): List<T> fun <T> listOf(vararg T): List<T>- 第一個無參的listOf()函數返回空的List,它直接調用同一文件內定義的emptyList()函數,該函數返回一個單例對象EmptyList。EmptyList是List<Nothing>接口的實現類,可以代表所有類型的空列表。
- 第二個listOf()函數產生一個只有一個元素的不可變列表,它直接調用java.util.Collections類的singletonList()方法。
-第三個lisOf(),接受可變數量的T類型元素并生成包含這些元素的列表。傳入一個T類型的數組,如果長度為0就返回空列表,否則 就將數組轉換為列表。
二、mutableListOf()函數
listOf()函數可以創建不變的List,要想創建可變的List,可以使用mutableList()函數:
inline fun mutableListOf(): MutableList<T> = ArrayList()fun mutableListOf(vararg elements: T): MutableList<T> { if(elements.size == 0) { return ArrayList() } else { return ArrayList(ArrayAsCollection(elements, isVarargs = true)) } }- inline關鍵字定義了內聯函數,會在編譯時展開到調用處,提高性能。
- Kotlin的集合框架只定義了接口,具體實現類都是直接調用Java類。mutableListOf()返回一個ArrayList對象。
三、arrayListOf()函數
arrayListOf()函數用來創建可變的ArrayList,有兩個參數不同的重載形式:
inline fun <T> arrayListOf(): ArrayList<T> = ArrayList()fun <T> arrayListOf(vararg elements: T): ArrayList<T> {if(elements.size == 0) {return ArrayList() } else { return ArrayList(ArrayAsCollection(elements, isVarargs = true)) } }- 這個函數的實現與mutableListOf()完全一樣,唯一的不同在于返回的類型不同。arrayListOf()返回ArrayList<T>,是一個Java的ArrayList類型,所以是可變的。
四、listOfNotNull()函數
以上的函數都是可以接受null作為元素的,這與Java中的List是不同的。而這個方法會把null全部剔除掉,返回包含所有非null值的List:
fun listOfNotNull(element: T?): List<T> = if(element != null) listOf(element) else emptyList() fun listOfNotNull(vararg elements: T?): List<T> = elements.filterNotNull()- 這兩個函數都接受可空的T?類型參數,返回剔除所有null值的List。
- 第二個函數調用的Array<out T?>.filterNotNull()函數,會先新建一個ArrayList<T>,然后遍歷數組內的所有元素,如果不是null就添加到ArrayList里,最后返回ArrayList。
五、binarySearch()函數
Collections.kt文件中提供了四個針對List的binarySearch()函數,它們可以對列表進行二分查找:
fun <T> List<T>.binarySearch(element: T, comparator: Comparator<in T>, fromIndex: Int = 0, toIndex: Int = size): Int fun <T> List<T>.binarySearch(fromIndex: Int = 0, toIndex: Int = size, comparison: (T) -> Int): Int fun <T: Comparable<T>> List<T轉載于:https://www.cnblogs.com/pokay/p/8423856.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: 如何读懂UWA性能报告?—NGUI篇
- 下一篇: 二维数组的查找,刷题成功——剑指Offe