cn.hutool.core.lang.intern.WeakInterner Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hutool-all Show documentation
Show all versions of hutool-all Show documentation
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
package cn.hutool.core.lang.intern;
import cn.hutool.core.map.WeakConcurrentMap;
import java.lang.ref.WeakReference;
/**
* 使用WeakHashMap(线程安全)存储对象的规范化对象,注意此对象需单例使用!
*
* @author looly
* @since 5.4.3
*/
public class WeakInterner implements Interner{
private final WeakConcurrentMap> cache = new WeakConcurrentMap<>();
public T intern(T sample) {
if (sample == null) {
return null;
}
T val;
do {
val = this.cache.computeIfAbsent(sample, WeakReference::new).get();
} while (val == null);
return val;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy