快来看看原来代码还可以这么写

206 阅读2分钟

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);