您的位置:首页 > 其它

安卓开发中枚举类型的使用

2016-10-08 11:02 369 查看
一、基本用法

枚举类型定义

package com.crs.demo.ui.enumcase;

/**
* Created on 2016/10/8.
* Author:crs
* Description:定义一个颜色枚举类型,里面定义四个常量。
*/
public enum ColorEnum {
RED,
BLUE,
YELLOW,
}枚举类型特点及使用
package com.crs.demo.ui.enumcase;

/**
* Created on 2016/10/8.
* Author:crs
* Description:测试枚举类型
* 枚举类型如何定义,如何使用,有什么注意事项
*
* enum关键字;因为也称之为枚举类,枚举类型名首字母要大写;枚举是java里面的特殊类;用于定义有限数量的数据集。
* 1)声明一个枚举类;因为里面的值都是常量,所以大写,用逗号分隔。
* 2)在编译时,枚举类型被编译成.class文件。
* 3)枚举类中的每一个常量,都是其所在枚举的子类。
* 4)当使用枚举常量时,jvm会自动创建该常量的实例: ColorEnum color = ColorEnum.RED;
* 5)因为color值是颜色枚举类型,所以color值只能是定义的枚举常量中的一种,赋其他的值会报错,这就是所谓的限定变量的赋值。
* 6)打印的color值为字符串,可以配合switch进行使用。
* 7)values()是枚举类中特殊的方法,用于将枚举值作为数组返回。
* 8)如果需要向枚举中添加新方法,那么必须在enum实例序列的最后添加一个分号。
*
* 1)枚举类型是一种数据类型,用于定义变量,限制变量的赋值(枚举值是确定的,有限的)。
* 2)如何获取枚举值?通过"枚举名.值"来取得相关枚举中的值
* 3)可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
*/
public class testEnum {
public static void main(String[] args) {
//1)如何使用枚举
ColorEnum color = ColorEnum.RED;
//赋其他的值,会报错,限定变量的赋值
//color="11";

//2)获取枚举数组
ColorEnum[] values = ColorEnum.values();
for (ColorEnum e : values) {
System.out.print(e);
}

//3)配合switch进行使用
ColorEnum e = values[0];
switch (e) {
case RED: {
System.out.print("red");
}
break;
case BLUE: {
System.out.print("blue");
}
break;
case YELLOW: {
System.out.print("yellow");
}
break;
}
}
}二、使用枚举类型定义请求方式
package com.crs.demo.ui.enumcase;

/**
* Created on 2016/10/8.
* Author:crs
* Description:请求方式枚举类
*/
public enum HttpRequestMethod {
GET, POST,
}
三、使用枚举类型定义路由跳转(重点)
package com.crs.demo.ui.enumcase;

/**
* Created on 2016/10/8.
* Author:crs
* Description:路由跳转
*/
public enum FilterRouterActivityEnums {
//枚举常量,常量名要大写,当前枚举类的子类
SEARCH {
public String getFormat() {
return "/search";
}
},

HOME {
public String getFormat() {
return "/home";
}
};
//必须以分号结尾

//在枚举类中定义一个抽象方法,让子类起实现,如果子类不实现,就会报错
public abstract String getFormat();

public boolean isMatch(String url) {
//获取枚举数组
FilterRouterActivityEnums[] enums = FilterRouterActivityEnums.values();
//遍历枚举数组
for (FilterRouterActivityEnums e : enums) {
//子类调用其中的方法,返回字符串
if (e.getFormat().equals(url)) {
return true;
}
}
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息