枚举的初级使用
enum Day {
MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public static void main(String[] args){
//直接引用
Day day =Day.MONDAY;
System.out.println("day:"+day);
}
直接引用枚举的值即可,这便是枚举类型的最简单模型。
枚举的进阶使用
向enum类添加方法与自定义属性和构造函数 重新定义一个日期枚举类,带有desc成员变量描述该日期的对于中文描述,同时定义一个getDesc方法,返回中文描述内容,自定义私有构造函数,在声明枚举实例时传入对应的中文描述,代码如下:
enum Day2 {
MONDAY("星期一", 1),
TUESDAY("星期二", 2),
WEDNESDAY("星期三", 3),
THURSDAY("星期四", 4),
FRIDAY("星期五", 5),
SATURDAY("星期六", 6),
SUNDAY("星期日", 7);//记住要用分号结束
private String desc;//文字描述
private Integer code; //对应的代码
/**
* 私有构造,防止被外部调用
*
* @param desc
*/
private Day2(String desc, Integer code) {
this.desc = desc;
this.code = code;
}
/**
* 定义方法,返回描述,跟常规类的定义没区别
*
* @return
*/
public String getDesc() {
return desc;
}
/**
* 定义方法,返回代码,跟常规类的定义没区别
*
* @return
*/
public int getCode() {
return code;
}
}
public static void main(String[] args){
for (Day2 day:Day2.values()) {
System.out.println("name:"+day.name()+
",desc:"+day.getDesc());
}
}
项目案例
使用1
package com.lingo.hkdemo.carpartition;
/**
* @author watson
* @date 2021/7/13 15:56
* @Description: TODO
**/
public enum IPConfig {
// m_sDeviceIP2("192.168.11.102", 2);
//ip
// m_sDeviceIP1("192.168.11.101", "{'latitude':36.006666,'longitude':120.284131}"),
// m_sDeviceIP2("192.168.11.102", "{'latitude':36.026801,'longitude':120.284258}"),
// m_sDeviceIP3("192.168.11.103", "{'latitude':36.039355,'longitude':120.283312}"),
// m_sDeviceIP4("192.168.11.104", "{'latitude':36.059462,'longitude':120.293327}"),
// m_sDeviceIP5("192.168.11.105", "{'latitude':36.061874,'longitude':120.296227}"),
// m_sDeviceIP6("192.168.11.106", "{'latitude':36.065411,'longitude':120.304386}"),
// m_sDeviceIP7("192.168.11.107", "{'latitude':36.038662,'longitude':120.284171}"),
// m_sDeviceIP8("192.168.11.108", "{'latitude':36.02739,'longitude':120.284945}"),
// m_sDeviceIP9("192.168.11.109", "{'latitude':36.06279,'longitude':120.301487}"),
// m_sDeviceIP10("192.168.11.110", "{'latitude':36.005266,'longitude':120.284635}");;
m_sDeviceIP1("192.168.11.101", "36.006666-120.284131"),
m_sDeviceIP2("192.168.11.102", "36.026801-120.284258"),
m_sDeviceIP3("192.168.11.103", "36.039355-120.283312"),
m_sDeviceIP4("192.168.11.104", "36.059462-120.293327"),
m_sDeviceIP5("192.168.11.105", "36.061874-120.296227"),
m_sDeviceIP6("192.168.11.106", "36.065411-120.304386"),
m_sDeviceIP7("192.168.11.107", "36.038662-120.284171"),
m_sDeviceIP8("192.168.11.108", "36.02739-120.284945"),
m_sDeviceIP9("192.168.11.109", "36.06279-120.301487"),
m_sDeviceIP10("192.168.11.110", "36.005266-120.284635");;
String ip;
String code;
IPConfig(String ip, String code) {
this.ip = ip;
this.code = code;
}
public String getIp() {
return ip;
}
public String getCode() {
return code;
}
}
class sdf {
public static void main(String[] args) {
IPConfig[] values = IPConfig.values();
String name = values[0].name();
System.out.println(name);
// String code = IPConfig.valueOf("m_sDeviceIP9").getCode();
// System.out.println(code);
switch ("m_sDeviceIP9") {
case "sf":
System.out.println("dfa");
break;
case "m_sDeviceIP9":
String codes = IPConfig.valueOf("m_sDeviceIP9").getCode();
System.out.println(codes);
break;
}
}
}
使用2
for (IPConfig value : IPConfig.values()) {
String m_sDeviceIP = value.getIp();
//线程异步,
CompletableFuture completableFuture = CompletableFuture.runAsync(() -> {
init(m_sDeviceIP);
}, MyThreadPool.executorService);
}