【Java | 您所在的位置:网站首页 › agreementlist不能为空借款 › 【Java |
应用场景
判断字符串、包装类、集合、对象是否为空。 Hutool工具字符串工具-StrUtil (hutool.cn) 1. 判断字符串是否为空(StrUtil的使用)str1为null,str2是字符串,str3为空字符串,str4是包含不可见字符(空格等)的字符串。 使用StrUtil.isEmpty(str)和StrUtil.isBlank(str) /* 测试Hutool工具类 StrUtil ObjectUtil */ String str1 = null; //这个判断为空肯定为true String str2 = "null"; //这个判断为空肯定为false String str3 = ""; //这个判断为空人们希望为true String str4 = " "; //这是空白字符,对于isEmpty和isNull来说判断为true System.out.println(StrUtil.isEmpty(str1)); //true System.out.println(StrUtil.isEmpty(str2)); //false System.out.println(StrUtil.isEmpty(str3)); //true System.out.println(StrUtil.isEmpty(str4)); //false System.out.println("**************************"); System.out.println(StrUtil.isBlank(str1)); //true System.out.println(StrUtil.isBlank(str2)); //false System.out.println(StrUtil.isBlank(str3)); //true System.out.println(StrUtil.isBlank(str4)); //true总结: isBlank与 isEmpty(CharSequence) 的区别是: isBlank方法会校验空白字符,且性能相对于 isEmpty(CharSequence) 略慢。 2.判断包装类是否为空(ObjectUtil的使用) // 对于包装类只有这两种情况,用哪个都可以 Integer i1 = null; Integer i2 = 1; // 判断指定对象是否为空,支持: // 1. CharSequence // 2. Map // 3. Iterable // 4. Iterator // 5. Array System.out.println(ObjectUtil.isEmpty(i1)); //true System.out.println(ObjectUtil.isEmpty(i2)); //false System.out.println("**************************"); // 检查对象是否为null 判断标准为: // 1. == null // 2. equals(null) System.out.println(ObjectUtil.isNull(i1)); //true System.out.println(ObjectUtil.isNull(i2)); //false总结:对于包装类,用哪个都可以 3.判断集合是否为空(ObjectUtil的使用) ArrayList list1 = null; //这个判断为空肯定为true ArrayList list2 = new ArrayList(); ArrayList list3 = new ArrayList(List.of("list1","list2","list3")); //这个判断为空肯定为false // 判断指定对象是否为空,支持: // 1. CharSequence // 2. Map // 3. Iterable // 4. Iterator // 5. Array System.out.println(ObjectUtil.isEmpty(list1)); //true System.out.println(ObjectUtil.isEmpty(list2)); //true System.out.println(ObjectUtil.isEmpty(list3)); //false System.out.println("**************************"); // 检查对象是否为null 判断标准为: // 1. == null // 2. equals(null) System.out.println(ObjectUtil.isNull(list1)); //true System.out.println(ObjectUtil.isNull(list2)); //false System.out.println(ObjectUtil.isNull(list3)); //false总结: 这是ObjectUtil的isEmpty(obj)方法 public static boolean isEmpty(Object obj) { if (null == obj) { return true; } if (obj instanceof CharSequence) { return StrUtil.isEmpty((CharSequence) obj); } else if (obj instanceof Map) { return MapUtil.isEmpty((Map) obj); } else if (obj instanceof Iterable) { return IterUtil.isEmpty((Iterable) obj); } else if (obj instanceof Iterator) { return IterUtil.isEmpty((Iterator) obj); } else if (ArrayUtil.isArray(obj)) { return ArrayUtil.isEmpty(obj); } return false; }对于ArrayList集合,该方法调用了ArrayUtil.isEmpty(obj),进行了length的判断。因此使用isEmpty判断集合为空。 4.判断对象是否为空(ObjectUtil的使用)新建一个Person类 @Data @NoArgsConstructor @AllArgsConstructor public class Person{ private Integer id; private String name; }测试 Person p1 =null; Person p2 = new Person(); Person p3 = new Person(1,"张三"); System.out.println(ObjectUtil.isEmpty(p1)); //true System.out.println(ObjectUtil.isEmpty(p2)); //false System.out.println(ObjectUtil.isEmpty(p3)); //false System.out.println("**************************"); // 检查对象是否为null 判断标准为: // 1. == null // 2. equals(null) System.out.println(ObjectUtil.isNull(p1)); //true System.out.println(ObjectUtil.isNull(p2)); //false System.out.println(ObjectUtil.isNull(p3)); //false System.out.println("**************************"); System.out.println(BeanUtil.isEmpty(p1)); //true System.out.println(BeanUtil.isEmpty(p2)); //true System.out.println(BeanUtil.isEmpty(p3)); //falseBeanUtil.isEmpty(obj)总结: 判断Bean是否为空对象,空对象表示本身为null或者所有属性都为null 此方法不判断static属性 Params: bean – Bean对象 ignoreFieldNames – 忽略检查的字段名 Returns:是否为空,true - 空 / false - 非空 |
CopyRight 2018-2019 实验室设备网 版权所有 |