java基础知识总结

1. 常用方法总结

1.1. StringUtils.isEmpty(String)、StringUtils.isBlank()

1.1.1. maven依赖

<dependency> 
<groupId>org.apache.commons</groupId> 
<artifactId>commons-lang3</artifactId> 
<version>3.12.0</version> <!-- 使用时请检查最新版本 -->
 </dependency>

1.1.2. 使用示例

import org.apache.commons.lang3.StringUtils;    
public class Main {  
    public static void main(String[] args) {  
        String nullString = null;  
        String emptyString = "";  
        String spaceString = "   ";  
        String normalString = "Hello";  
  
        System.out.println(StringUtils.isEmpty(nullString));  // 输出: true  
        System.out.println(StringUtils.isEmpty(emptyString)); // 输出: true  
        System.out.println(StringUtils.isEmpty(spaceString)); // 输出: false  
        System.out.println(StringUtils.isEmpty(normalString)); // 输出: false  
  
        // 使用 StringUtils.isBlank 检查空格字符串  
        System.out.println(StringUtils.isBlank(spaceString)); // 输出: true  
    }  
}

1.2. BeanUtils.copyProperties(O1, O2)

将对象O1的属性,复制到对象O2的属性,只有类型和名称相同的属性才会被复制,否则就是null

public class Solutions {
    @Data
    @AllArgsConstructor
    public static class Stu1{
        String name;
        String contact;
    }
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class Stu2{
        String name;
        String id;
    }

    public static void main(String[] args) throws JsonProcessingException {
        Stu1 stu1 = new Stu1("d","3");
        Stu2 stu2 = new Stu2();
        BeanUtils.copyProperties(stu1,stu2);
        System.out.println(stu2.name);   //输出d
        System.out.println(stu2.id);  //输出null
    }
}

1.3. Optional.ofNullable

  • 作用:对入参进行null值判断,分别做出不同处理
Student student = new Student("3","3","3",null); // 假设这里 student.getMap() 返回一个可能为 null 的 Map  
Map<String, Map<String, Object>> map = Optional.ofNullable(student.getMap())  
    .orElseGet(() -> new HashMap<>()); // 使用 new HashMap<> 来创建一个新的、可修改的 Map  
if (!map.containsKey("ability")) {  
    map.put("ability", new HashMap<>()); 
}  

上面表示:student.getMap()如果返回的是null,则创建一个新的map。

注意:如下代码返回的是一个空的map,空的map不允许修改,是只读的、不可修改的 Map 实例

Optional.ofNullable(student.getMap()).orElseGet(Collections::emptyMap)
  • null值异常处理
Student student = new Student("3","3","3",null); // 假设这里student.getMap()可能返回null  
  
Map<String, Map<String, Object>> map = Optional.ofNullable(student.getMap())  
    .orElseThrow(() -> new IllegalArgumentException("Student's map must not be null"));  
  
System.out.println(map);  
if (!map.containsKey("ability")) {  
    map.put("ability", new HashMap<>());  
}
  • 总结:
    • orElseThrow抛出异常
    • orElseGet返回默认值

1.4. Objects.isNull()

1.4.1. 使用示例

import java.util.Objects;  
  
public class ObjectsDemo {  
    public static void main(String[] args) {  
        String str = null;  
        boolean isNull = Objects.isNull(str);  
        System.out.println(isNull); // 输出:true  
  
        str = "Hello, World!";  
        isNull = Objects.isNull(str);  
        System.out.println(isNull); // 输出:false  
    }  
}

1.5. Arrays.asList方法

Arrays.asList() 是 Java 中的一个静态方法,用于将数组转换为固定大小的列表(实际上是 List 接口的一个视图,由 Arrays.ArrayList 类实现,但注意这不是 java.util.ArrayList)。这个方法在 java.util.Arrays 类中定义。

以下是 Arrays.asList() 的一些关键点:

  1. 转换数组为列表:它接受一个或多个数组元素作为参数,并返回一个包含这些元素的固定大小的列表。

List<String> list = Arrays.asList("a", "b", "c");

  1. 不支持修改结构:返回的列表是固定大小的,这意味着你不能使用像 add()addAll() 这样的方法来添加元素。如果你尝试这样做,会抛出 UnsupportedOperationException。同样,你也不能使用 remove() 方法来删除元素。
  2. 修改元素:虽然你不能修改列表的大小,但你可以修改列表中元素的内容(如果它们是可变的)。

List<String> list = Arrays.asList("a", "b", "c");
list.set(1, "B"); // 这会工作,将第二个元素从 "b" 修改为 "B"

  1. 基本类型数组Arrays.asList() 不接受基本类型数组(如 int[]double[] 等)作为参数。如果你尝试这样做,它会将整个数组作为列表中的一个元素。如果你需要这样的列表,你可能需要先将基本类型数组转换为包装类型的数组(如 Integer[]Double[] 等)。

int[] intArray = {1, 2, 3};
List<int[]> list = Arrays.asList(intArray); // 这会创建一个只包含一个元素的列表,该元素是 intArray

Integer[] integerArray = {1, 2, 3};
List<Integer> integerList = Arrays.asList(integerArray); // 这会创建一个包含三个元素的列表

  1. 用途:这个方法在需要将数组作为列表传递给需要 List 参数的方法时非常有用,或者你只是想在不需要动态大小的情况下快速遍历数组元素。
  2. 替代方案:如果你需要一个可以动态修改大小的列表,你可以使用 java.util.ArrayList 的构造函数来创建一个新的列表,并将数组元素添加到其中。

int[] intArray = {1, 2, 3};
List<Intege
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值