栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

妙用Java 8中的 Function接口 消灭if...else(非常新颖的写法)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

妙用Java 8中的 Function接口 消灭if...else(非常新颖的写法)

妙用Java 8中的 Function接口 消灭if…else(非常新颖的写法)

链接: 参考地址


抛异常接口

@FunctionalInterface
public interface ThrowExceptionFunction {
    
    void throwMessage(String message);
}

If , else 分支操作接口定义

@FunctionalInterface
public interface BranchHandle {
    
    void trueOrFalseHandle(Runnable trueHandle, Runnable falseHandle);
}

工具类实现接口

import org.junit.platform.commons.util.StringUtils;

public class VUtils {

    
    public static ThrowExceptionFunction isTure(boolean b) {

        return (errorMessage) -> {
            if (!b) {
                throw new RuntimeException(errorMessage);
            }
        };
    }

    
    public static BranchHandle isTrueOrFalse(boolean b) {
        return (trueHandle, falseHandle) -> {
            if (b) {
                trueHandle.run();
            } else {
                falseHandle.run();
            }
        };
    }
    
}

测试类调用

public static void main(String[] args) {

        boolean flag = true;
        
        VUtils.isTrueOrFalse(flag)
                .trueOrFalseHandle(
                        () -> {
                            System.out.println("----正常----");
                            System.out.println("接口调用成功!");

                        }, () -> {
                            VUtils.isTure(flag).throwMessage("操作失败,请联系管理员!!");
                        }
                );
    }

-自定义判断是否null值处理

接口定义

import java.util.function.Consumer;


public interface PresentOrElseHandler {

    
    boolean presentOrElseHandle(Consumer action, Runnable emptyAction);
}

工具类调用此方法

null值返回true,否则为false

 
    public static PresentOrElseHandler isBlank(String str) {
        return (consumer, runnable) -> {
            if (StringUtils.isBlank(str)) {
                runnable.run();
                return true;
            } else {
                consumer.accept(str);
                return false;
            }
        };
    }

测试类

public static void main(String[] args) {

        boolean flag = true;

        String str = "";
        VUtils.isTrueOrFalse(VUtils.isBlank(str)
                .presentOrElseHandle(
                        System.out::println, () -> {
                            return;
                        }
                ))
                .trueOrFalseHandle(
                        () -> {
                            System.out.println("----正常----");
                            System.out.println("接口调用成功!");
                        }, () -> {
                            VUtils.isTure(flag).throwMessage("操作失败,请联系管理员!!");
                        }
                );

    }

测试结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号