- 浏览: 282937 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
北方狼:
请问,当表格列数过多时,除了调整pdf页面宽度,能否设置分页显 ...
利用itext操作pdf从数据库导出大量数据--功能汇总(一) -
15817048604:
.....................
利用itext操作pdf从数据库导出大量数据--添加水印(四) -
laoma102:
顶个,谢楼主
代理模式,JDK动态代理,SpringAOP来龙去脉 -
穷途末路:
给力,谢谢分享
Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用 -
weir2009:
复杂的交叉表crosstab 怎么处理?
利用itext操作pdf从数据库导出大量数据--功能汇总(一)
1.java枚举值解决类型安全的问题,范围问题,能获取一组值的集合,这些是public static final常量不能做到的
2.可以创建一个enum类,把它看做一个普通的类。除了它不能继承其他类了。(java是单继承,它已经继承了Enum),
可以添加其他方法,覆盖它本身的方法
3.switch()参数可以使用enum了
4.values()方法是编译器插入到enum定义中的static方法,所以,当你将enum实例向上转型为父类Enum是,values() 就不可访问了。解决办法:在Class中有一个getEnumConstants()方法,所以即便Enum接口中没有values()方法,我们仍然可以通过Class对象取得所有的enum实例
5.无法从enum继承子类,如果需要扩展enum中的元素,在一个接口的内部,创建实现该接口的枚举,以此将元素进行分组。达到将枚举元素进行分组。
6.使用EnumSet代替标志。enum要求其成员都是唯一的,但是enum中不能删除添加元素。
7.EnumMap的key是enum,value是任何其他Object对象。
8.enum允许程序员为eunm实例编写方法。所以可以为每个enum实例赋予各自不同的行为。
9.使用enum的职责链(Chain of Responsibility) .这个关系到设计模式的职责链模式。以多种不同的方法来解决一个问题。然后将他们链接在一起。当一个请求到来时,遍历这个链,直到链中的某个解决方案能够处理该请求。
10.使用enum的状态机
11.使用enum多路分发
这里举例说明
2.可以创建一个enum类,把它看做一个普通的类。除了它不能继承其他类了。(java是单继承,它已经继承了Enum),
可以添加其他方法,覆盖它本身的方法
3.switch()参数可以使用enum了
4.values()方法是编译器插入到enum定义中的static方法,所以,当你将enum实例向上转型为父类Enum是,values() 就不可访问了。解决办法:在Class中有一个getEnumConstants()方法,所以即便Enum接口中没有values()方法,我们仍然可以通过Class对象取得所有的enum实例
5.无法从enum继承子类,如果需要扩展enum中的元素,在一个接口的内部,创建实现该接口的枚举,以此将元素进行分组。达到将枚举元素进行分组。
6.使用EnumSet代替标志。enum要求其成员都是唯一的,但是enum中不能删除添加元素。
7.EnumMap的key是enum,value是任何其他Object对象。
8.enum允许程序员为eunm实例编写方法。所以可以为每个enum实例赋予各自不同的行为。
9.使用enum的职责链(Chain of Responsibility) .这个关系到设计模式的职责链模式。以多种不同的方法来解决一个问题。然后将他们链接在一起。当一个请求到来时,遍历这个链,直到链中的某个解决方案能够处理该请求。
10.使用enum的状态机
11.使用enum多路分发
这里举例说明
package com.fruitking.cms.autoflow; public class CmsConstants { public enum TaskDefineState { ON("1","启动"), OFF("0","关闭"); private String flag; private String name; private TaskDefineState(String flag,String name){ this.flag = flag; this.name = name; } public String getFlag() { return flag; } public void setFlag(String flag) { this.flag = flag; } public String getName() { return name; } public void setName(String name) { this.name = name; } }; public enum TaskExecuteState { ON("1","未执行"), OFF("0","已执行"); private String flag; private String name; private TaskExecuteState(String flag,String name){ this.flag = flag; this.name = name; } public String getFlag() { return flag; } public void setFlag(String flag) { this.flag = flag; } public String getName() { return name; } public void setName(String name) { this.name = name; } }; }
package com.fruitking.cms.autoflow; import java.util.EnumMap; import java.util.EnumSet; import com.fruitking.cms.autoflow.CmsConstants.TaskDefineState; import com.fruitking.cms.autoflow.CmsConstants.TaskExecuteState; public class TestEnum { //测试函数 public static void main(String[] args) { //直接变量enum for (TaskDefineState s : TaskDefineState.values()) System.out.println(s.name()); //switch与enum的结合使用 TaskDefineState switchStated = TaskDefineState.OFF; switch (switchStated) { case OFF: System.out.println("select OFF"); break; case ON: System.out.println("select ON"); break; } //EnumSet的使用 EnumSet<TaskDefineState> stateSetd = EnumSet.allOf(TaskDefineState.class); for (TaskDefineState s : stateSetd) { System.out.println(s); } //EnumMap的使用 EnumMap stateMapd = new EnumMap( TaskDefineState.class); stateMapd.put(TaskDefineState.ON, "is On"); stateMapd.put(TaskDefineState.OFF, "is off"); for (TaskDefineState s : TaskDefineState.values()) { System.out.println(s.name() + ":" + stateMapd.get(s)); } System.out.println("---------------------------------------------------"); //直接变量enum for (TaskExecuteState s : TaskExecuteState.values()) System.out.println(s.getFlag()+":"+s.getName()); //switch与enum的结合使用 TaskExecuteState switchStatee = TaskExecuteState.OFF; switch (switchStatee) { case OFF: System.out.println("select OFF"); break; case ON: System.out.println("select ON"); break; } //EnumSet的使用 EnumSet<TaskExecuteState> stateSete = EnumSet.allOf(TaskExecuteState.class); for (TaskExecuteState s : stateSete) { System.out.println(s); } //EnumMap的使用 EnumMap stateMape = new EnumMap( TaskExecuteState.class); stateMape.put(TaskExecuteState.ON, "is On"); stateMape.put(TaskExecuteState.OFF, "is off"); for (TaskExecuteState s : TaskExecuteState.values()) { System.out.println(s.name() + ":" + stateMape.get(s)); } } }
发表评论
-
电话号码压缩方法
2013-03-09 23:31 1613/** * 电话号码采用62进制压缩方法工具 ... -
jquerytree树结构实例
2011-05-18 09:19 1644上传一个jquerytree的实例 下面做些讲解 jquery ... -
js对象的定义以及在弹出窗口中的返回值应用
2011-05-16 16:57 1911弹出窗口及返回值的js代码 function searc ... -
存储设备的接口分类
2011-01-07 23:29 1480存储设备的接口有五大类 IDE、SCSI、USB,并行口,串口 ... -
VBA脚本语言测试Excel宏定义处理文件拷贝
2010-11-29 13:54 2964'指定文件目录复制工具(可用户基于svn版本管理的项目做增 ... -
Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用
2010-11-15 16:23 6022Excel2007和Excel2003的部分功能菜单有所调整 ... -
深入探索 高效的Java异常处理框架
2010-11-11 09:07 1309突然想起应用中异常处理问题,以前很少应用这块知识,或者说应用得 ... -
oracle数据库备份恢复和svn备份恢复
2010-08-09 14:07 1393目录 2010-08-06系统重装 1 一、 检查当前操作系统 ... -
url中文乱码,分页中乱码,textarea回车符回写
2010-04-14 10:51 2880url传输乱码的解决方式 这里不针对在web服务器设置编码(考 ... -
myeclips下的jvm内存设计问题
2009-12-22 11:06 1075在myeclipse的window菜单-》preference ... -
struts2 井号,星号,百分号的含义和使用举例
2009-11-18 15:03 3183struts2 OGNL,struts2 表达 ... -
字符串连接,但需要去掉重复部分
2009-11-06 17:26 1351比如有两个字符串,上海虹桥、虹桥国际机场,连接起来为上海虹桥国 ... -
oracle存储过程学习过程
2009-09-30 16:58 2040一直没有使用过存储过程 今天特意学习一下oracle的存储过程 ... -
正则表达式实例
2009-09-23 15:32 1194var chineseNameReg = /^[\u4E00- ... -
文本框默认输入灰色显示,点击后用层显示提示信息
2009-09-21 17:16 3200<html> <head> <t ... -
socket模拟http中post或者get提交数据,并获得响应数据
2009-08-31 10:37 8198首先建立一个web工程 准备连个jsp文件试试正常的流程 ... -
基于ssl双向认证的详细例子
2009-08-27 17:27 2116产生服务端证书库 keytool -genkey -alias ... -
Web Services的基本原理
2009-08-05 16:34 1083摘要:本文介绍了Web Services的起源和基本原理,分析 ... -
摘抄:jvm的内存介绍和举例
2009-08-01 11:20 11994.2 容易被搞晕的--堆和栈 由于"堆" ... -
摘抄:ejb的概念和原理解说
2009-08-01 11:06 1339转自《java程序员 编程 ...
相关推荐
java枚举结果类、根据状态值获取枚举值 Controller: /** 模块类型枚举 */ model.addAttribute("mType", ModuleTypeEnum.ModuleTypeShow()); ftl: value="${mType.key}:${mType.value}” </#list>
Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用...
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...
1. **类型安全**:枚举类型确保只有定义好的枚举值才能被使用,从而避免了运行时错误。 2. **枚举值的特点**: - 枚举值自动具有 `public`, `static`, 和 `final` 属性。 - 枚举值不能被外部代码创建新的实例。 3....
例如,在 GenderTest 类中,我们使用 switch 语句来判断枚举值的类型,并执行不同的操作。如果枚举值是 MALE,我们将其 name 属性设置为 "男",否则,我们将其 name 属性设置为 "女"。 结论 Java 枚举类是一种非常...
使用Java枚举类型相比传统的`public static final`变量有许多优势: 1. **类型安全**: 枚举类型确保只能使用预定义的值,这有助于避免程序错误。 2. **自动实现接口**: 枚举类型自动实现了`Serializable`和`...
总的来说,Java枚举提供了一种强类型、安全且易于使用的机制来表示固定集合的值。通过枚举,我们可以更好地组织代码,减少错误,并提升程序的可维护性。在JavaDemo项目中,可能包含了各种使用枚举的示例,包括但不...
本篇文章将深入探讨Java枚举的使用及其背后的原理。 一、枚举的定义与使用 1. 基本用法: 在Java中,枚举可以通过`enum`关键字来创建。例如,我们可以定义一个表示一周七天的枚举类型: ```java public enum ...
Java枚举(Enum)状态机是一种使用枚举类型来实现状态转换逻辑的编程技术,它在Java编程中被广泛应用于管理对象的状态变化。状态机是一种模型,用于描述一个系统或对象在不同时间点可能存在的状态以及如何从一个状态...
这些代码可能包括创建枚举类,然后通过反射获取枚举值、实例名以及演示如何使用`getDeclaredConstructor()`和`newInstance()`方法来访问私有构造函数(虽然这不是常规用法)。 通过深入理解这些概念,你可以更好地...
Java枚举类型是Java语言中的一种特殊的类,用于定义一组固定的常量集合。它在Java中扮演着重要的角色,提供了一种安全、类型化的常量表示方式,比传统的final static变量更具有优势。理解Java枚举类型对于编写高质量...
枚举常量在`switch`语句中特别有用,它们提供了更好的可读性和安全性,因为无法匹配任何非枚举值。 ```java ShapeType shape = ShapeType.CIRCLE; switch (shape) { case CIRCLE: System.out.println("Circle ...
在本文中,我们将深入探讨Java枚举的定义、使用方法以及它如何改善传统使用`static final`常量的模式。 首先,让我们看看传统的`static final`常量表示枚举的方式。例如,清单1展示了如何使用`public static final`...
使用`javac`编译Java源文件时,可以添加`-encoding`参数指定源代码的编码,如`javac -encoding UTF-8 YourFile.java`。 总的来说,解决Java中的中文乱码问题需要从多方面考虑,包括文件操作、网络通信、数据库交互...
枚举的简单的介绍 枚举的作用 1.枚举可以实现一个或多个接口 2.可以定义新的变量 3.可以定义新的方法 4.可以定义根据具体枚举值而相异的类
枚举可以用于switch语句中,这是枚举的一个强大特性,因为Java会自动检查枚举值的合法性,从而避免了传统的if-else或case语句可能导致的错误: ```java Color color = Color.RED; switch (color) { case RED: ...
### Java枚举详解 在Java编程语言中,枚举(`enum`)是一种特殊的类,用于定义一组固定的常量值。这些常量值通常代表了一组预定义的选项或者状态,比如颜色、方向等。使用枚举可以提高代码的可读性和可维护性,并且...
9. 可以定义根据具体枚举值而相异的类 应用场景 使用枚举类型可以重写之前的代码,解决类型安全性和可读性问题。例如: ```java public enum Season { SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4); private ...
2. **自动实现 Comparable 和 Enum**:每个枚举类型都默认继承了 `java.lang.Enum` 类,因此枚举实例自动实现了 `Comparable` 接口,可以直接比较枚举值的顺序。 3. **枚举集合**:可以通过 `values()` 方法获取...
总的来说,学习Java枚举不仅能够帮助我们编写更清晰、更安全的代码,还能提高程序设计的效率。通过深入理解枚举的特性和用法,可以更好地应对各种编程场景,尤其是在处理固定值集合或需要类型安全的场合。在Java EE...