enum类型的使用
来源:互联网 发布:敏捷软件开发 pdf 编辑:程序博客网 时间:2024/06/06 02:58
需要继续研究。。。。。。。
创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式Class Enum<E extends Enum<E>>
,而 E
表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal)
构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。
public
enum
EnumTest {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
这段代码实际上调用了7次 Enum(String name, int ordinal):
new
Enum<EnumTest>(
"MON"
,
0
);
new
Enum<EnumTest>(
"TUE"
,
1
);
new
Enum<EnumTest>(
"WED"
,
2
);
int
compareTo(E o)
比较此枚举与指定对象的顺序。
Class<E>
getDeclaringClass()
返回与此枚举常量的枚举类型相对应的 Class 对象。
String
name()
返回此枚举常量的名称,在其枚举声明中对其进行声明。
int
ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
String
toString()
返回枚举常量的名称,它包含在声明中。
static
<T extends Enum<T>> T
valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
public enum EnumTest { MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6) { @Override public boolean isRest() { return true; } }, SUN(0) { @Override public boolean isRest() { return true; } }; private int value; private EnumTest(int value) { this.value = value; } public int getValue() { return value; } public boolean isRest() { return false; }}public class Test { public static void main(String[] args) { System.out.println("EnumTest.FRI 的 value = " + EnumTest.FRI.getValue()); }}输出结果:
EnumTest.FRI 的 value = 5
public enum Gender {MAN{public String getTitle(){return "男";}},WOMAN{public String getTitle(){return "女";}},BOTH{public String getTitle(){return "男女均可";}};public abstract String getTitle();public String getValue(){return this.name();}}
public class GenderTest {public static void main(String[] args) throws Exception{System.out.println(BeanUtils.getProperty(Gender.MAN, "title"));Object bean = Gender.MAN;BeanInfo beanInfo = null;try {beanInfo = Introspector.getBeanInfo(bean.getClass());} catch (Exception e1) {e1.printStackTrace();}PropertyDescriptor[] properties = beanInfo.getPropertyDescriptors();for(PropertyDescriptor property:properties){if(property.getName().equals("title")) // 可以换为value后输出值为MAN{Method method = property.getReadMethod();//值得研究System.out.println(method.isAccessible()); // falsemethod.setAccessible(true);Object retVal;try {retVal = method.invoke(bean, null); System.out.println(retVal);} catch (Exception e) {e.printStackTrace();}}}}}
输出结果如下:
男
false
MAN
0 0
- enum类型的使用
- c++ enum类型的使用
- Enum枚举类型的使用
- enum枚举类型的使用
- 枚举类型ENUM的使用
- enum枚举类型的使用
- Java-Enum类型的使用
- Enum枚举类型的使用
- java枚举类型enum的使用
- Java枚举类型enum的使用原理
- java枚举类型enum的使用
- java 枚举类型enum 的使用
- java枚举类型enum的使用
- java枚举类型enum的使用
- java 枚举类型enum 的使用
- java枚举类型enum的使用
- java枚举类型enum的使用
- java 枚举类型enum 的使用
- ORACLE client 中文支持预处理步骤
- 测试用例设计白皮书--等价类划分方法
- USRP中的半带滤波器
- 高效能人士懂得忽视,知道如何说“不”
- 第179天
- enum类型的使用
- 新花生壳教程
- iOS框架研究 之 UIResponder 可以接收事件的对象
- MySQL索引类型一览 让MySQL高效运行起来
- 互联网,将从内部颠覆企业管理模式
- Linux 简单常用指令(含绝招)
- 实例详解tomcat组件安装+Nginx反向代理tomcat+Apache使用mod_jk和mod_proxy反向代理和负载均衡
- 13--信号量,共享内存和消息队列
- 子曰不在词