添加 checkAllNotNull 方法

feature/net-util
ZhouXY108 2023-09-09 11:14:30 +08:00
parent 71683c4950
commit 76b340e87d
2 changed files with 72 additions and 1 deletions

View File

@ -18,9 +18,11 @@ package xyz.zhouxy.plusone.commons.util;
import java.util.function.Supplier;
import com.google.common.base.Preconditions;
/**
* Guava Preconditions
*
*
* @author ZhouXY
*
* @see com.google.common.base.Preconditions
@ -33,6 +35,21 @@ public class PreconditionsExt {
}
}
public static <T, E extends Throwable> void checkAllNotNull(Iterable<T> values) throws E {
Preconditions.checkNotNull(values);
for (T item : values) {
Preconditions.checkNotNull(item);
}
}
@SafeVarargs
public static <T, E extends Throwable> void checkAllNotNull(T... values) throws E {
Preconditions.checkNotNull(values);
for (T item : values) {
Preconditions.checkNotNull(item);
}
}
private PreconditionsExt() {
throw new IllegalStateException("Utility class");
}

View File

@ -0,0 +1,54 @@
package xyz.zhouxy.plusone.commons.util;
import org.junit.jupiter.api.Test;
import xyz.zhouxy.plusone.commons.exception.BaseException;
import java.util.Arrays;
import static org.junit.jupiter.api.Assertions.*;
class PreconditionsExtTests {
@Test
void testCheck() {
assertThrows(TestException.class, () -> {
PreconditionsExt.check(false, () -> new TestException("Test error message."));
});
}
@Test
void testCheckAllNotNull() {
assertThrows(NullPointerException.class, () -> {
Object[] array = null;
PreconditionsExt.checkAllNotNull(array);
});
assertThrows(NullPointerException.class,
() -> PreconditionsExt.checkAllNotNull(new Object[]{new Object(), null}));
assertThrows(NullPointerException.class,
() -> PreconditionsExt.checkAllNotNull(new Object(), null));
assertThrows(NullPointerException.class,
() -> PreconditionsExt.checkAllNotNull(Arrays.asList(new Object(), null)));
PreconditionsExt.checkAllNotNull(new Object[]{new Object(), "Test"});
PreconditionsExt.checkAllNotNull(new Object(), "Test");
PreconditionsExt.checkAllNotNull(Arrays.asList(new Object(), "Test"));
}
}
class TestException extends BaseException {
private static final long serialVersionUID = -8808661764734834820L;
private static final String ERR_CODE = "TEST";
protected TestException(String msg) {
super(ERR_CODE, msg);
}
protected TestException(Throwable cause) {
super(ERR_CODE, cause);
}
protected TestException(String msg, Throwable cause) {
super(ERR_CODE, msg, cause);
}
}