1、比较两个对象是否相等
当我们用equals比较两个对象是否相等的时候,还需要对左边的对象进行判空,不然可能会报空指针异常,我们可以用java.util包下Objects封装好的比较是否相等的方法
Objects.equals(strA, strB);
源码是这样的
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
2、两个List集合取交集
List<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("b");
list1.add("c");
List<String> list2 = new ArrayList<>();
list2.add("a");
list2.add("b");
list2.add("d");
list1.retainAll(list2);
System.out.println(list1); // 输出[a, b]
3、格式化日期
// Date类型转String类型
String date = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
System.out.println(date); // 输出 2021-05-01 01:01:01
// String类型转Date类型
Date date = DateUtils.parseDate("2021-05-01 01:01:01", "yyyy-MM-dd HH:mm:ss");
// 计算一个小时后的日期
Date date = DateUtils.addHours(new Date(), 1);
SimpleDateFormat fms=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); fms.format(new Date()
Mysql 插入时间时报错Incorrect datetime value: '' for column 'createtime'
原因:yyyy-MM-dd HH:mm:ss 格式中dd和HH直接的空格中英文有影响
4、包装临时对象
当一个方法需要返回两个及以上字段时,我们一般会封装成一个临时对象返回,现在有了Pair和Triple就不需要了,可以临时包装两个或者三个对象
// 返回两个字段
ImmutablePair<Integer, String> pair = ImmutablePair.of(1, "yideng");
System.out.println(pair.getLeft() + "," + pair.getRight()); // 输出 1,yideng
// 返回三个字段
ImmutableTriple<Integer, String, Date> triple = ImmutableTriple.of(1, "yideng", new Date());
System.out.println(triple.getLeft() + "," + triple.getMiddle() + "," + triple.getRight());
5、2.4 commons-io 文件流处理
引入依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
File file = new File("demo1.txt");
// 读取文件
List<String> lines = FileUtils.readLines(file, Charset.defaultCharset());
// 写入文件
FileUtils.writeLines(new File("demo2.txt"), lines);
// 复制文件
FileUtils.copyFile(srcFile, destFile);
6、前端传递参数是String类型转json
JSONObject jsonObject = JSONObject.parseObject(surveyDto); Map<String,Object> l=(Map<String,Object>)jsonObject; Map<String,Object> m=(Map<String,Object>)l.get("surveyDto");
通过JSONObject转化后,再转化为List
List<String> l=JSONObject.parseArray(list.get(i).get("tryon_url").toString(),String.class);
这个parseArray
7、通过sql直接计算岁数
CONCAT(
FLOOR(TIMESTAMPDIFF(YEAR,member.birthday,detail.update_time)),"岁",
FLOOR(TIMESTAMPDIFF(MONTH,member.birthday,detail.update_time)%12),"月"
) as age