Switch能否用string做参数?
2015-09-29 10:05
197 查看
在开发java程序的过程中,我们遇到了条件判断首选就是switch,但是java中的switch功能不支持字符串作为条件。这时我们该怎么办呢? ——使用枚举。
一、枚举简单了解
1、enum是一种数据类型。
特殊:是指在枚举中将变量的值一一列出来,变量的值只限于列举出来的值的范围内。
特殊到一般化:enmu 就是我们根据自己业务需要定义的同“String,int”相同的数据类型。同时enum也就是一种类,可以在enum中定义方法,在使用的时候就按照调用类的方式来调用。
2、定义成枚举的前提
用于声明一组命名的常数,当一个变量有几种可能的取值时,且这几个取值是固定的,一般不会发生变化就可以将它定义为枚举类型。例如:一周的七天:
public enum Day
{
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,
}
3、枚举的基类
System.Enum 类型是所有枚举类型的抽象基类,并且从 System.Enum 继承的成员在任何枚举类型中都可用。
在这个基类中,继承了系统的 三个接口IComparable, IFormattable, IConvertible。有很多常用的方法。例如:compaareTo,Equals,format 等,所以在使用枚举类的时候,不要单纯的只是根据业务需要定义,要学会使用继承系统中已经存在的“基类”,就可以拥有巨人给写好的方法,省去自己写的麻烦,更重要的是“巨人”写的灵活性好。
二、实例
下面是一个DRP中的小“视角”。根据不同的字符串,对不同的表进行操作,使用了工厂模式,在FactoryContext中使用枚举来完成了Switch判断。
?
就这么简单,使用枚举,解决了java中Switch 不能判断String的不完美。
PS:枚举的前提是,这些字符串不会频繁的改变,如果要是频繁的改变,不建议使用枚举。
字符串如果强制转换成int之后没有溢出那么是可以传入改字符串,不会报错
一、枚举简单了解
1、enum是一种数据类型。
特殊:是指在枚举中将变量的值一一列出来,变量的值只限于列举出来的值的范围内。
特殊到一般化:enmu 就是我们根据自己业务需要定义的同“String,int”相同的数据类型。同时enum也就是一种类,可以在enum中定义方法,在使用的时候就按照调用类的方式来调用。
2、定义成枚举的前提
用于声明一组命名的常数,当一个变量有几种可能的取值时,且这几个取值是固定的,一般不会发生变化就可以将它定义为枚举类型。例如:一周的七天:
public enum Day
{
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,
}
3、枚举的基类
System.Enum 类型是所有枚举类型的抽象基类,并且从 System.Enum 继承的成员在任何枚举类型中都可用。
在这个基类中,继承了系统的 三个接口IComparable, IFormattable, IConvertible。有很多常用的方法。例如:compaareTo,Equals,format 等,所以在使用枚举类的时候,不要单纯的只是根据业务需要定义,要学会使用继承系统中已经存在的“基类”,就可以拥有巨人给写好的方法,省去自己写的麻烦,更重要的是“巨人”写的灵活性好。
二、实例
下面是一个DRP中的小“视角”。根据不同的字符串,对不同的表进行操作,使用了工厂模式,在FactoryContext中使用枚举来完成了Switch判断。
?
PS:枚举的前提是,这些字符串不会频繁的改变,如果要是频繁的改变,不建议使用枚举。
字符串如果强制转换成int之后没有溢出那么是可以传入改字符串,不会报错
相关文章推荐
- Java – Check if key exists in HashMap
- arm+linux交叉编译libxml2
- JNDI数据源的配置及使用
- pm2.5接口,城市pm2.5指数查询接口调用代码示例
- 写下常用的正则(regular expression)
- ssh无密码登陆
- 当出现的Interexploer 终止站点的操作的提示框
- 多维数组的遍历性能
- 影响力--读书笔记
- CSS-3 Animation 的使用
- 点击cell,在cell下方创建一个新的cell,再次点击,删除该cell
- 第十二集 混合高斯模型和EM算法
- hello spring
- Java – Convert String to int
- 04概要设计说明书
- 智能指针 weak_ptr
- 在《Android PorterDuff.Mode图形混合处理 》这篇博客中,我们讲解了PorterDuff.Mode对图形混合的处理。这篇我们将通过图形混合的原理,来制作一个手动擦除蒙版显示底层图片
- c#集合类汇总(上)
- Eclipse switch workspace 时好多多余workspace
- Android采用Volley具体的例子展示完整的异步加载数据(一)