Switch case 参数如何能使用string

57 篇文章 0 订阅
17 篇文章 0 订阅

Switch case参数可以是枚举类型,那么怎么样才能使用String呢?

例如,我想要case的类型是:alert,application,server,keyTrans,mobile这样的字符串

那么

1 声明一个枚举类

public enum Apptype{
		alert("alert"),
		application("application"),
		server("server"),
		keyTrans("keyTrans"),
		mobile("mobile");
		
		String value;
		private Apptype(String value) {
			this.value = value;
		}
		
		public String getValue() {
			return value;
		}
	};
2 声明一个方法或者工具类,实现枚举类型转化为String的方法
public static <T extends Enum<T>> T valueOfIgnoreCase(Class<T> enumeration,String name) {
		for (T enumValue : enumeration.getEnumConstants()) {
			if (enumValue.name().equalsIgnoreCase(name)) {
				return enumValue;
			}
		}
		throw new IllegalArgumentException("There is no value with name '"
				+ name + " in Enum " + enumeration.getClass().getName());
	}

这样就可以直接用了

		@Override
			public void onSuccess(int statusCode,
					org.apache.http.Header[] headers,
					java.lang.String responseString) {
				// TODO Auto-generated method stub
				String string = responseString.toString();
				Gson gson = new Gson();
				HashMap<String,int[]> ColorLine = gson.fromJson(string,
						new TypeToken<HashMap<String,int[]>>() {
						}.getType());
				
				//alert_line app_line  server_line  keyTrans_line  mobile_line
				int[] colorNum;
				for(Entry<String, int[]> entry : ColorLine.entrySet()){
					switch (EnumChangeUtil.valueOfIgnoreCase(Apptype.class, entry.getKey())){
						case alert:
					    	colorNum=entry.getValue();
							LineItem[] alertlines = new LineItem[]{new LineItem(colorNum[0],Color.GRAY),new LineItem(colorNum[1],Color.BLUE),new LineItem(colorNum[2],Color.RED)};
							alert_line.setLines(alertlines);
							break;
						case application:
							colorNum=entry.getValue();
							LineItem[] applicationlines = new LineItem[]{new LineItem(colorNum[0],Color.GRAY),new LineItem(colorNum[1],Color.BLUE),new LineItem(colorNum[2],Color.RED)};
							app_line.setLines(applicationlines);
							break;
						case server:
							colorNum=entry.getValue();
							LineItem[] serverlines = new LineItem[]{new LineItem(colorNum[0],Color.GRAY),new LineItem(colorNum[1],Color.BLUE),new LineItem(colorNum[2],Color.RED)};
							server_line.setLines(serverlines);
							break;
						case keyTrans:
							colorNum=entry.getValue();
							LineItem[] keyTranslines = new LineItem[]{new LineItem(colorNum[0],Color.GRAY),new LineItem(colorNum[1],Color.BLUE),new LineItem(colorNum[2],Color.RED)};
							keyTrans_line.setLines(keyTranslines);
							break;
						case mobile:
							colorNum=entry.getValue();
							LineItem[] mobilelines = new LineItem[]{new LineItem(colorNum[0],Color.GRAY),new LineItem(colorNum[1],Color.BLUE),new LineItem(colorNum[2],Color.RED)};
							mobile_line.setLines(mobilelines);
							break;
						default:
							break;
							
					}
				}
//				LineItem[] lines = new LineItem[]{new LineItem(1,Color.RED),new LineItem(2,Color.BLUE)};
//				segmentLineView.setLines(lines);
//				alert_line.setLines(lines);

			}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值