1、枚举类
/**
* 枚举类结合case使用
*
* [@Author](https://my.oschina.net/arthor) liufu
* @CreateTime 2017/8/16 9:54
*/
public enum ProductEnum {
XIAOMI("101", "红米note3", 999),
HUAWEI("102", "荣耀V9", 999),
OPPO("103", "OPPOR11", 999),
VIVO("104", "VIVOx9", 999),
MEIZU("105", "魅蓝note3", 999),
LESHI("106", "超级手机2", 999);
String productId;
String productName;
int price;
//一定要注意赋值的顺序
ProductEnum(String productId, String productName, int price) {
this.productId = productId;
this.productName = productName;
this.price = price;
}
/**
* 这种写法最简洁
*/
public static ProductEnum getProductByID1(String productId) {
ProductEnum[] values = ProductEnum.values();
int length = values.length;
for (int i = 0; i < length; i++) {
if (productId.equals(values[i].productId)) {
return values[i];
}
}
return null;
}
/**
* 这种写法很low
*/
public static ProductEnum getProductByID2(String productId) {
ProductEnum result = null;
switch (productId) {
case "101":
result = XIAOMI;
break;
case "102":
result = HUAWEI;
break;
case "103":
result = OPPO;
break;
case "104":
result = VIVO;
break;
case "105":
result = MEIZU;
break;
case "106":
result = LESHI;
break;
default:
result = null;
}
return result;
}
public String getProductId() {
return productId;
}
public String getProductName() {
return productName;
}
public int getPrice() {
return price;
}
/**
* 可以在枚举类里面直接写main方法
*
* [@param](https://my.oschina.net/u/2303379) args
*/
public static void main(String[] args) {
System.out.println(ProductEnum.XIAOMI.getProductId());
System.out.println(ProductEnum.XIAOMI.getProductName());
System.out.println(ProductEnum.XIAOMI.getPrice());
System.out.println(ProductEnum.getProductByID1("101").getProductName());
ProductEnum productType = ProductEnum.getProductByID1("102");
switch (productType) {
case XIAOMI:
System.out.println("这是小米手机");
break;
case HUAWEI:
System.out.println("这是华为手机");
break;
case OPPO:
System.out.println("这是OPPO手机");
break;
case VIVO:
System.out.println("这是vivo手机");
break;
case MEIZU:
System.out.println("这是魅族手机");
break;
case LESHI:
System.out.println("这是乐视手机");
break;
default:
System.out.println("找不到这个类型");
}
}
}
2、测试结果: