文章目录
1、任何类型对象判空:
if (ObjectUtils.isEmpty(任意对象)) {
}
2、 redisTemplate缓存
package org.springframework.data.redis.core;
redisTemplate.opsForValue().get(key);
redisTemplate.opsForValue().set(key, value, redisTime, TimeUnit.SECONDS);
3、字符串解析为list
public void test() {
List<Student> stuList = JSON.parseObject(JSON.toJSONString("字符串"),
new TypeReference<List<Student>>(){});
}
4、对象内容拷贝
5、可变参,取最大值
@Slf4j
public class GetMaxAmount {
public static void main(String[] args) {
Map<String, Object> slmItem = Maps.newHashMap();
slmItem.put("balance6", new BigDecimal("20.0"));
slmItem.put("balance12", new BigDecimal("23.0"));
slmItem.put("balance36", new BigDecimal("22.0"));
BigDecimal bigDecimal = getMaxAmount(slmItem, "balance12", "balance36");
System.out.println("max value:" + bigDecimal);
}
private static BigDecimal getMaxAmount(Map<String, Object> item, String... args) {
BigDecimal retAmountj;
try {
List<BigDecimal> balances = new ArrayList<>();
for (String arg : args) {
BigDecimal balance = (BigDecimal) item.get(arg);
balances.add(balance==null?BigDecimal.ZERO:balance);
}
retAmountj = Collections.max(balances);
} catch (Exception e) {
// log.error("getMaxAmount BigDecimal转换异常,Exception:", e);
retAmountj = null;
}
return retAmountj;
}
}
6、ObjectMapper反序列化
public static void main(String[] args) throws Exception {
String str = "{\"DS\":{\"o2o\":\"文案1\"}}";
ObjectMapper objectMapper=new ObjectMapper().configure(
DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Map<String, Map<String, String>> map = objectMapper.readValue(str,
new TypeReference<Map<String, Map<String, String>>>(){});
System.out.println("解析结果:" + map);
System.out.println("done");
}
输出结果:
解析结果:{DS={o2o=文案1}}
done
参考:
Jackson之ObjectMapper对象的使用
https://blog.youkuaiyun.com/qq_41834086/article/details/111152470
链接: link
7、单元测试 报对象空指针
7.1
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
7.2
@RunWith(MockitoJUnitRunner.class)
@PrepareForTest(A.class, B.class)
8、校验必填字段
public static boolean commonFieldsCheck(Map<String, Object> requestMap, String[] commmon) {
if (requestMap == null) {
return false;
}
for (String field : commmon) {
if (!requestMap.containsKey(field) || StringUtils.isEmpty(String.valueOf(requestMap.get(field)))) {
return false;
} else {
continue;
}
}
return true;
}
9、private boolean checkBlankOrNull(Object var)
private boolean checkBlankOrNull(Object var) {
if (var == null) {
return false;
}
if (var instanceof String && StringUtils.isNotBlank((String) var)) {
return true;
}
if (var instanceof Map && !((Map) var).isEmpty()) {
return true;
}
if (var instanceof List && !((List) var).isEmpty()) {
return true;
}
return false;
}
10、日志打印耗时时间
public static void main(String[] args) throws InterruptedException {
DateTime dateTimeStart = new DateTime();
Thread.sleep(10*1000);
boolean showTime = true;
if (showTime) {
DateTime dateTimeEnd = new DateTime();
Interval interval = new Interval(dateTimeStart.getMillis(), dateTimeEnd.getMillis());
Period period = interval.toPeriod();
String periodStr = period.getMillis() + "min" + period.getSeconds() + "s"
+ period.getMillis() + "ms";
log.info("耗时时间:" + periodStr);
System.out.println("done");
}
}
11、判断语句内 赋值
12、 lambda表达式用法
13、求集合中对象数量Collections.frequency
public void frequency() {
List<String> list = Lists.newArrayList("aaa", "bbb","aaa");
System.out.println("num;" + Collections.frequency(list, "aaa"));
}
14、spring注入:两个实现类注入到一个map
15、阿波罗字段映射(张坤大佬)