工作中,不可避免的写 if-else 语句,有的时候,会觉得看着不爽,
写个函数接口
@FunctionalInterface
public interface VoidFunction {
void exec();
}
工具类
import cn.hutool.core.util.StrUtil;
import org.apache.commons.collections4.CollectionUtils;
import java.util.Collection;
import java.util.function.Consumer;
public class LambdaUtil {
public static <T> void ifNotNullThen(T value, Consumer<T> function) {
if (value != null) {
function.accept(value);
}
}
public static void ifNotNullThen(Object obj, VoidFunction function) {
if (obj != null) {
function.exec();
}
}
public static <T> void ifNotEmptyThen(Collection<T> value,Consumer<Collection<T>> function){
if (CollectionUtils.isNotEmpty(value)){
function.accept(value);
}
}
public static void ifNotBlankThen(String value, Consumer<String> function) {
if (StrUtil.isNotBlank(value)){
function.accept(value);
}
}
public static void ifNotBlankThen(String value, Consumer<String> function,String msg) {
if (StrUtil.isNotBlank(value)){
function.accept(value);
}else {
throw new RuntimeException(msg);
}
}
public static void ifNotBlankThrow(String value, String msg){
if (StrUtil.isNotBlank(value)){
throw new RuntimeException(msg);
}
}
public static void ifBlankThen(String value,VoidFunction function){
if (StrUtil.isBlank(value)){
function.exec();
}
}
public static void ifNullThen(Object obj,VoidFunction function){
if (obj == null){
function.exec();
}
}
public static void ifTrueThen(Boolean isTrue,VoidFunction function){
if (isTrue){
function.exec();
}
}
public static void ifFalseThen(Boolean isFalse,VoidFunction function){
ifTrueThen(!isFalse,function);
}
public static void ifTrueThrow(Boolean isTrue,String msg){
if (isTrue){
throw new RuntimeException(msg);
}
}
public static <T> void ifEmptyThrow(Collection<T> value,String msg){
if (CollectionUtils.isEmpty(value)){
throw new RuntimeException(msg);
}
}
public static <T> void ifNotEmptyThrow(Collection<T> value,String msg){
if (CollectionUtils.isNotEmpty(value)){
throw new RuntimeException(msg);
}
}
这只是一个例子,也可在封装一些别的。