1.字符串
1.1 字符串判空
1.1.1 一般写法
if (null != str && str != "") {
}
1.1.2 推荐写法
// org.apache.commons.lang.StringUtils
if (StringUtils.isNotBlank(str)) {
}
1.2 集合转字符串
将集合中的元素使用逗号
分隔符拼接为字符串
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(5);
// org.springframework.util.StringUtils
String str = StringUtils.collectionToCommaDelimitedString(numbers);
输出结果:1,2,3,4,5
将集合中的二元素使用特定
分隔符拼接为字符串
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(5);
// org.springframework.util.StringUtils
String str = StringUtils.collectionToDelimitedString(numbers, "#");
输出结果:1#2#3#4#5
1.3 字符串转集合
将字符串以逗号
分隔符拆分成集合
String str = "1, 2, 3, 4, 5";
// org.springframework.util.StringUtils
Set<String> set = StringUtils.commaDelimitedListToSet(str);
输出结果:[1, 2, 3, 4, 5]
2.对象
2.1 对象是否为null
2.1.1 一般写法
if (null == o) {
}
2.1.2 推荐写法
if (Objects.isNull(o)) {
}
2.2 对象是否不为null
2.2.1 一般写法
if (null != o) {
}
2.2.2 推荐写法
if (Objects.nonNull(o)) {
}
2.3 对象比较
2.3.1 一般写法
Integer a = 127;
Integer b = 127;
// true
System.out.println(a == b);
数字一般都会使用"=="方式进行比较,特定范围内比较结果与预期一致,超出范围比较结果就会与预期截然相反
Integer a = 128;
Integer b = 128;
// false
System.out.println(a == b);
2.3.2 推荐写法
Integer a = 128;
Integer b = 128;
// true
System.out.println(Objects.equals(a, b));
Integer a = 128;
Integer b = 128;
// true
System.out.println(Objects.equals(a, b));
针对是否相等场景,可以统一采用Objects.equals()方法避免踩坑
3. 集合
3.1 集合判空
3.1.1 一般写法
if (null != collections && collections.size() > 0) {
}
3.1.2 推荐写法
if (CollectionUtils.isNotEmpty(collections)) {
}
3.2 构建空集合
3.2.1 一般写法
List<Integer> numbers = new ArrayList<>();
3.2.2 推荐写法
List<Integer> numbers = Collections.emptyList();
3.3 求集合中最大值
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(4);
numbers.add(2);
numbers.add(3);
numbers.add(1);
Integer max = Collections.max(numbers);
输出结果:5
3.4 求集合中的最小值
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(4);
numbers.add(2);
numbers.add(3);
numbers.add(1);
Integer min = Collections.min(numbers);
输出结果:1
3.5 对集合中洗牌
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(5);
Collections.shuffle(numbers);
输出结果[5, 2, 1, 4, 3]
3.6 对集合排序
3.6.1 升序排序
List<Integer> numbers = new ArrayList<>();
numbers.add(3);
numbers.add(1);
numbers.add(5);
numbers.add(2);
numbers.add(4);
Collections.sort(numbers);
输出结果:[1, 2, 3, 4, 5]
3.6.2 降序排序
List<Integer> numbers = new ArrayList<>();
numbers.add(3);
numbers.add(1);
numbers.add(5);
numbers.add(2);
numbers.add(4);
Collections.sort(numbers);
Collections.reverse(numbers);
输出结果:[5, 4, 3, 2, 1]
4.反射
4.1 获取一个类中声明的方法
Method[] declaredMethods = ReflectionUtils.getDeclaredMethods(User.class);
4.2 对类中的字段进行处理
ReflectionUtils.doWithFields(User.class, field -> {
System.out.println(field.getName());
});
4.3 对类中的方法进行处理
ReflectionUtils.doWithMethods(User.class, method -> {
System.out.println(method.getName());
});
5. 注解
5.1 获取类上的注解
Annotation annotation = AnnotationUtils.getAnnotation(DebugApplication.class, SpringBootApplication.class);
5.2 获取方法上的注解
Annotation annotation = AnnotationUtils.getAnnotation(method, Autowired.class);