java 枚举组合_10、枚举类型enum 和 case组合使用

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、测试结果:

256c026f283995465bc9bf33334c1bde.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值