com.xiaoleilu.hutool.cache.impl.CacheObj Maven / Gradle / Ivy
package com.xiaoleilu.hutool.cache.impl;
/**
* 缓存对象
* @author Looly
*
* @param Key类型
* @param Value类型
*/
public class CacheObj {
final K key;
final V obj;
/** 上次访问时间 */
long lastAccess;
/** 访问次数 */
long accessCount;
/** 对象存活时长,0表示永久存活*/
long ttl;
CacheObj(K key, V obj, long ttl) {
this.key = key;
this.obj = obj;
this.ttl = ttl;
this.lastAccess = System.currentTimeMillis();
}
/**
* @return 是否过期
*/
boolean isExpired() {
return (ttl > 0) && (lastAccess + ttl < System.currentTimeMillis());
}
/**
* @return 获得对象
*/
V get() {
lastAccess = System.currentTimeMillis();
accessCount++;
return obj;
}
@Override
public String toString() {
return "CacheObj [key=" + key + ", obj=" + obj + ", lastAccess=" + lastAccess + ", accessCount=" + accessCount + ", ttl=" + ttl + "]";
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy