日期等选择器使用

This commit is contained in:
2024-02-05 17:26:48 +08:00
parent 7221f87a25
commit 5705e51a2d
12 changed files with 243 additions and 17 deletions
@@ -0,0 +1,48 @@
package com.dahe.mylibrary.base
import android.content.Context
import kotlin.reflect.KFunction0
/**
* @ClassName SingletonHolder
* @Author john
* @Date 2024/2/5 15:35
* @Description TODO
*/
open class SingletonHolder<out T, in A>(creator: (A) -> T) {
private var creator: ((A) -> T)? = creator
@Volatile
private var instance: T? = null
//对上述方法的一种更简洁的写法
fun getInstance(arg: A): T =
instance ?: synchronized(this) {
instance ?: creator!!(arg).apply {
instance = this
}
}
}
open class SingletonNoPHolder<out T>(creator: () -> T) {
private var creator: (() -> T)? = creator
@Volatile
private var instance: T? = null
//对上述方法的一种更简洁的写法
fun getInstance(): T =
instance ?: synchronized(this) {
instance ?: creator!!().apply {
instance = this
}
}
}
//使用
//class SkinManager private constructor(context: Context) {
// companion object : SingletonHolder<SkinManager, Context>(::SkinManager)
//}