一、背景平时工作开发过程中,难免会用到状态机,即状态的流转。下面是一个简单的模拟状态机:有些同学会定义为常量,使用 if else 来流转状态,不太优雅。有些同学会定义为枚举,大多数同学会选择使用 switch 来流转状态:import lombok.Getter;public enum State { STATE_A("A"), STATE_B("B"), STATE_C("C"), STATE_D("D"); @Getter priv
种拓展插件。可以转换短网址、搜索书签和浏览器历史、可以对复制的图片进行 OCR 识别等非常强大的功能。我个人最喜欢【网页快开】这个插件该插件有很多,自带的搜索还支持自定义搜索自定义搜索功能还支持一键触发多个网站的搜索功能。比如我想
一、背景在平时工作开发过程中,很容易遇到判断某个值是否在某个范围的场景。如需要校验某个日期是否在某个范围;需要校验某个版本号是否在某个区
一、背景在平时开发过程中,通常我们会选择使用 Guava 的 Cache 类用作本地缓存。但有些时候,我们不需要过期控制,不想引入 Guava 包,我们也会选择简单粗暴的使用 Map 作缓存。但是,在某些业务场景下,需要在 Map 的属性发生变更时,做一些特殊处理。比如 Map 发生不变化时,要基于 Map 的值生成一份不可变 List。二、方法尝试使用 Guava 的 Cache 类,发现 CacheBuilder 构造 Cache 时,只提供了 RemovalListener 用于移除或替
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号