java 判断集合非空工具类
时间: 2023-08-08 19:05:48 浏览: 228
在 Java 中,我们可以使用以下方法来判断一个集合是否为空:
1. 使用 `isEmpty()` 方法:
```
public static <T> boolean isCollectionEmpty(Collection<T> collection) {
return collection == null || collection.isEmpty();
}
```
2. 使用 `size()` 方法:
```
public static <T> boolean isCollectionEmpty(Collection<T> collection) {
return collection == null || collection.size() == 0;
}
```
3. 使用 `Objects.requireNonNull()` 方法:
```
public static <T> boolean isCollectionEmpty(Collection<T> collection) {
return Objects.requireNonNull(collection).isEmpty();
}
```
以上三种方法都可以判断一个集合是否为空,其中第三种方法还可以在集合为空时抛出 `NullPointerException` 异常,让代码更加健壮。
相关问题
@valid 校验list_关于Spring集合非空校验无效的问题分析
在Spring中,我们可以使用`@NotNull`注解来校验集合类型的参数是否为null,但是当我们使用`@NotNull`注解时,对于集合类型的参数,只会校验其是否为null,而不会校验其是否为空集合。
为了解决这个问题,我们可以使用`@NotEmpty`注解来校验集合类型的参数是否为空集合。但是需要注意的是,`@NotEmpty`注解只能用于`CharSequence`、`Collection`、`Map`和数组类型的参数上,不能用于普通的对象类型参数上。
如果我们需要对普通对象类型的参数进行非空校验,可以使用`@NotNull`注解,同时结合`Optional`工具类的`isPresent()`方法来判断其是否为空对象。
例如:
```java
public void someMethod(@NotNull Optional<Object> obj) {
if (!obj.isPresent()) {
throw new IllegalArgumentException("obj must not be null");
}
// do something
}
```
java 在后端做非空判断要注意什么
在后端做非空判断是非常重要的,因为它可以有效防止空指针异常(NullPointerException)的发生。以下是在后端做非空判断时需要注意的几点:
1. 对于基本数据类型(如 int、double、boolean 等),不需要进行非空判断,因为它们的默认值都不为 null;
2. 对于对象类型,需要对其进行非空判断,否则可能会出现空指针异常;
3. 在判断对象是否为空时,应该使用对象的 equals() 方法来判断,而不是使用 == 运算符;
4. 对于集合类型(如 List、Set、Map 等),需要判断其是否为空,以及集合中的元素是否为空;
5. 可以使用工具类或框架提供的方法来简化非空判断的代码,如 Apache Commons Lang 的 StringUtils 类或 Spring Framework 的 Assert 类。
以下是一些示例代码,演示了如何在后端做非空判断:
```java
// 判断字符串是否为空
public boolean isNullOrEmpty(String str) {
return str == null || str.isEmpty();
}
// 判断对象是否为空
public boolean isNull(Object obj) {
return obj == null;
}
// 判断集合是否为空
public boolean isNullOrEmpty(Collection<?> collection) {
return collection == null || collection.isEmpty();
}
// 判断集合中的元素是否为空
public boolean hasNullElement(Collection<?> collection) {
for (Object obj : collection) {
if (obj == null) {
return true;
}
}
return false;
}
```
在实际开发中,需要根据具体的业务场景选择合适的非空判断方式,并保证代码的可读性和健壮性。
阅读全文