软件测试工程师 vue Nginx typora deployment scripting upload ldap bower Draggabilly vue钩子函数 vue代码规范 change事件 matlab定义空矩阵 python实例 python生成随机数 python的range java数据结构 java数组添加 javastring类型 java日期函数 java编程语言 java获得当前日期 java集合框架图 linux教程 linuxcat命令 php整站源码 php语言入门 c语言表白代码 英雄联盟体验服转换器 魔兽改图工具 梦幻手游助手 火萤壁纸下载 maven项目打包 pro换肤 逗号的作用 asp程序下载 win7仿win8主题 appsync补丁 geartrax
当前位置: 首页 > 学习教程  > 编程语言

枚举类实现判断数值大小计算,干掉ifelse

2020/10/16 17:48:31 文章标签:

枚举类实现判断数值大小计算,干掉ifelse目的干掉ifelse,使用此写法可以试试哦。 话不多说,上demo! 1.新建一个接口,包装用于枚举类实现。 public interface PlanInventoryFilterTypeBizService {/*** 条件* param qty 数量* param history…

枚举类实现判断数值大小计算,干掉ifelse

目的干掉ifelse,使用此写法可以试试哦。

话不多说,上demo!

1.新建一个接口,包装用于枚举类实现。

public interface PlanInventoryFilterTypeBizService {

    /**
     * 条件
     * @param qty 数量
     * @param historyQty 数量
     * @return
     */
   boolean  op(BigDecimal qty, BigDecimal historyQty);
}

2.在来一个枚举类,实现每个枚举值对应的算法。

public enum PlanInventoryFilterType implements PlanInventoryFilterTypeBizService {

    /**
     * 大于
     */
    lt {
        @Override
        public boolean op(BigDecimal qty, BigDecimal historyQty) {
            if (historyQty.compareTo(qty) > 0) {
                return true;
            } else {
                return false;
            }
        }
    },
    /**
     * 等于
     */
    eq {
        @Override
        public boolean op(BigDecimal qty,BigDecimal historyQty) {
            if (historyQty.compareTo(qty) == 0) {
                return true;
            } else {
                return false;
            }
        }
    },
    /**
     * 大于等于
     */

    ltEq {
        @Override
        public boolean op(BigDecimal qty,BigDecimal historyQty) {
            if (historyQty.compareTo(qty) >= 0) {
                return true;
            } else {
                return false;
            }
        }
    },
    /**
     * 小于
     */
    gt {
        @Override
        public boolean op(BigDecimal qty,BigDecimal historyQty) {
            if (historyQty.compareTo(qty) < 0) {
                return true;
            } else {
                return false;
            }
        }
    },
    /**
     * 小于等于
     */
    gtEq {
        @Override
        public boolean op(BigDecimal qty,BigDecimal historyQty) {
            if (historyQty.compareTo(qty) <= 0) {
                return true;
            } else {
                return false;
            }
        }
    }

}

3.测试

 public static void main(String[] args) {
        //3.13 < 4.2 ? true
        boolean op1 = PlanInventoryFilterType.valueOf(PlanInventoryFilterType.lt.name()).op(new BigDecimal(3.13), new BigDecimal(4.2));
        System.out.println(op1);

        //4.2 < 3.13 ? false
        boolean op2 = PlanInventoryFilterType.valueOf("gt").op(new BigDecimal(3.13), new BigDecimal(4.2));
        System.out.println(op2);
    }

如果觉得写的不错或者想了解更多,欢迎收藏和关注~~


本文链接: http://www.dtmao.cc/news_show_300189.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?