ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

APIJSON 博客13 Operation 第十三篇

2021-12-14 09:02:26  阅读:193  来源: 互联网

标签:week APIJSON 13 name index WeekDay Operation public String


2021SC@SDUSC

public enum Operation {}是枚举类型

枚举常用方法如下

一,常量定义
public enum WeekDay {
    SUN, MON, TUE, WED, THT, FRI, SAT
}
二,swich
public enum WeekDay {
    SUN, MON, TUE, WED, THT, FRI, SAT
}
 
public class SelectDay{
    WeekDay weekday = WeekDay.SUN;
    public void select(){
        switch(weekday){
            case SUN:
                weekday = WeekDay.SUN;
                break;
            ...
        }
    }
}
三,向枚举添加新方法
public enum Color {  
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color c : Color.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    // get set 方法  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getIndex() {  
        return index;  
    }  
    public void setIndex(int index) {  
        this.index = index;  
    }  
}  
四,覆盖枚举方法
public enum Color { 
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); 
    // 成员变量
    private String name; private int index; 
    // 构造方法 
    private Color(String name, int index) { 
        this.name = name; this.index = index; 
    } 
    //覆盖方法 
    @Override 
    public String toString() { 
    return this.index+"_"+this.name; 
    } 
}
五,实现接口
public interface Behaviour { 
    void print(); 
    String getInfo(); 

public enum Color implements Behaviour{ 
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); 
    // 成员变量 
    private String name; 
    private int index; 
    // 构造方法 
    private Color(String name, int index) { 
        this.name = name; this.index = index; 
    } 
    //接口方法 
    @Override 
    public String getInfo() { 
        return this.name; 
    } 
    //接口方法 
    @Override 
    public void print() { 
        System.out.println(this.index+":"+this.name); 
    } 
}
六,接口组织枚举
public interface Food { 
    enum Coffee implements Food{ 
        BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO 
    } 
    enum Dessert implements Food{ 
        FRUIT, CAKE, GELATO 
    } 
}
七,枚举集合
public class Test {
    public static void main(String[] args) {
        EnumSet<WeekDay> week = EnumSet.noneOf(WeekDay.class);
        week.add(WeekDay.MON);
        System.out.println("EnumSet中的元素:" + week);
        week.remove(WeekDay.MON);
        System.out.println("EnumSet中的元素:" + week);
        week.addAll(EnumSet.complementOf(week));
        System.out.println("EnumSet中的元素:" + week);
        week.removeAll(EnumSet.range(WeekDay.FRI, WeekDay.SAT));
        System.out.println("EnumSet中的元素:" + week);
    }
 
 

这个方法的代码如下

	/**
	 * 必须传的字段,结构是
	 * "key0,key1,key2..."
	 */
	MUST,

	/**
	 * 不允许传的字段,结构是
	 * "key0,key1,key2..."
	 */
	REFUSE,
	
	/**TODO 是否应该把数组类型写成 BOOLEANS, NUMBERS 等复数单词,以便抽取 enum ?扩展用 VERIFY 或 INSERT/UPDATE 远程函数等
	 * 验证是否符合预设的类型:
	 * BOOLEAN, NUMBER, DECIMAL, STRING, URL, DATE, TIME, DATETIME, OBJECT, ARRAY 
	 * 或它们的数组
	 * BOOLEAN[], NUMBER[], DECIMAL[], STRING[], URL[], DATE[], TIME[], DATETIME[], OBJECT[], ARRAY[]
	 * 结构是
	 * {
	 *   key0: value0,
	 *   key1: value1,
	 *   key2: value2
	 *   ...
	 * }
	 * 例如
	 * {
	 *   "id": "NUMBER", //id 类型必须为 NUMBER
	 *   "pictureList": "URL[]", //pictureList 类型必须为 URL[]
	 * }
	 * @see {@link AbstractVerifier#verifyType(String, String, Object, boolean)}
	 */
	TYPE,
	
	/**
	 * 验证是否符合预设的条件,结构是
	 * {
	 *   key0: value0,
	 *   key1: value1,
	 *   key2: value2
	 *   ...
	 * }
	 * 例如
	 * {
	 *   "phone~": "PHONE",  //phone 必须满足 PHONE 的格式,配置见 {@link AbstractVerifier#COMPILE_MAP}
	 *   "status{}": [1,2,3],  //status 必须在给出的范围内
	 *   "balance&{}":">0,<=10000"  //必须满足 balance>0 & balance<=10000
	 * }
	 */
	VERIFY,
	
	/**TODO 格式改为 id;version,tag 兼容多个字段联合主键。 ["id", "version,tag"] 也行
	 * 验证是否存在,结构是
	 * "key0,key1,key2..."
	 */
	EXIST,
	
	/**TODO 格式改为 id;version,tag 兼容多个字段联合主键。 ["id", "version,tag"] 也行
	 * 验证是否不存在,除了本身的记录,结构是
	 * "key0,key1,key2..."
	 */
	UNIQUE,
	
	
	/**
	 * 添加,当要被添加的对象不存在时,结构是
	 * {
	 *   key0: value0,
	 *   key1: value1,
	 *   key2: value2
	 *   ...
	 * }
	 */
	INSERT,
	
	/**
	 * 强行放入,不存在时就添加,存在时就修改,结构是
	 * {
	 *   key0: value0,
	 *   key1: value1,
	 *   key2: value2
	 *   ...
	 * }
	 */
	UPDATE,
	
	/**
	 * 替换,当要被替换的对象存在时,结构是
	 * {
	 *   key0: value0,
	 *   key1: value1,
	 *   key2: value2
	 *   ...
	 * }
	 */
	REPLACE,
	
	/**
	 * 移除,当要被移除的对象存在时,结构是
	 * "key0,key1,key2..."
	 */
	REMOVE;
	

定义了一些常量和使用方法以及注释,供其他类使用

标签:week,APIJSON,13,name,index,WeekDay,Operation,public,String
来源: https://blog.csdn.net/csascscascd/article/details/121900466

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有