zoukankan      html  css  js  c++  java
  • java通过接口扩展枚举

    package com.hra.riskprice;
    
    import com.hra.riskprice.SysEnum.Factor_Type;
    import com.hra.riskprice.pojo.SysEnumDict;
    import com.sun.corba.se.spi.orb.Operation;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import java.util.*;
    
    @SpringBootApplication
    public class RiskpriceApplication {
         interface  Operation{
        double apply(double x,double y);
    
    }
        enum  BasicOperation implements Operation {
    
            PLUS("+"){
                public double apply(double x, double y) {
                    return x+y;
                }
            },
            MINUS("-"){
    
                public double apply(double x, double y) {
                    return x-y;
                }
            },
            TIMS("*"){
    
                public double apply(double x, double y) {
                    return x*y;
                }
            },
            DIVIDE("/"){
    
                public double apply(double x, double y) {
                    return x/y;
                }
            };
            private  final  String symbol;
            BasicOperation(String symbol){
                this.symbol=symbol;
    
            }
    
            @Override
            public String toString() {
                return symbol;
            }
        }
        public static void main(String[] args) {
            BasicOperation b;
            b=BasicOperation.PLUS;
            Integer[] ids= Integer.class.getEnumConstants();
           test(BasicOperation.class,1,3);//主要方法 下面是获取枚举集合的列举方法
            EnumSet<BasicOperation> ops= EnumSet.allOf(BasicOperation.class);//在java中为枚举专门设计 效率高 第一名
            BasicOperation[] op2s= BasicOperation.values();//效率没有EnumSet高 第二名
            BasicOperation[] op1s= BasicOperation.class.getEnumConstants(); //如果不是枚举返回空 任何类型都点的出来 注意用到了.class  第三名
        }
        private static <T extends  Enum<T> & Operation> void test(Class<T> opSet,double x,double y){
    
            for(Operation op:opSet.getEnumConstants()){
               System.out.println(x+" "+op +" "+ y+" ="+op.apply(x,y));
    
            }
        }
    }
  • 相关阅读:
    你会做夹具吗?(一)
    DDR3布线设计要点总结
    PCB设计要点-DDR3布局布线技巧及注意事项
    走进JEDEC,解读DDR(下)
    [转]关于STM32 PB3 PB4 如何设置成普通GPIO的配置
    [转]Verilog有符号数与无符号数作运算
    [转]实用光电二极管pd的采样电路
    STM32外部8M晶振不启动
    ALTCLKCTRL核的作用
    [转]如何在Altium Designer中将PCB生成PDF?
  • 原文地址:https://www.cnblogs.com/kexb/p/10126021.html
Copyright © 2011-2022 走看看