feiyu02
2025-09-30 a3cc1d220f8a1de11874bebceba0130d32157ff1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package cn.flightfeather.supervision.common.utils
 
/**
 * 缓存查询工具类
 * @date 2025/9/15
 * @author feiyu02
 */
object QueryByCache {
 
    /**
     * 缓存查询
     * @param cache 缓存获取方法
     * @param calculate 计算方法
     * @param save 缓存保存方法
     * @return
     */
    fun <T> queryCache(cache: () -> T?, calculate: () -> T, save: (t: T) -> Unit = {}): T {
        val cacheData = cache.invoke()
        if (cacheData != null) {
            return cacheData
        }
        val calculateData = calculate.invoke()
        save.invoke(calculateData)
        return calculateData
    }
}