java 常量 表达式,java – Enum中的常量表达式
如果可能,修改getIndex()方法,使其返回枚举而不是整数.如果无法做到这一点,则需要将索引映射到枚举元素:
鉴于以下枚举:
public enum Index {
ONE,
TWO,
THREE
}
您可以使用将索引映射到枚举元素
Index.values()[index]
给定你的方法Integer getIndex(),你可以做类似的事情
switch(Index.values()[getIndex()])
case ONE : ...
break;
case TWO : ...
break;
case THREE : ...
break;
}
请注意,如果您尝试访问枚举中大于枚举元素数的索引(例如,在上面的示例中,如果getIndex()返回值> 2),则可能抛出ArrayIndexOutOfBoundsException.
我将表达式Index.values()[getIndex()]封装到类似于valueOf(int index)的枚举方法中,类似于默认的valueOf(String s).然后,您还可以在那里处理有效的数组索引检查(例如,如果索引超出范围,则返回特殊的枚举值).同样,您也可以转换具有特殊含义的离散值:
public enum Index {
ZERO,
ONE,
TWO,
THREE,
REG,
INVALID;
public static Index valueOf(int index) {
if (index == 8) {
return REG;
}
if (index >= values().length) {
return INVALID;
}
return values()[index];
}
}
这仅是一个示例 – 在任何情况下,它通常取决于您从getIndex()方法获得的值的范围,以及您希望如何将它们映射到枚举元素.
然后你可以像使用它一样
switch(Index.valueOf(service.getIndex())) {
case ZERO : ... break;
...
case REG : ... break;
...
}
有关其他信息,请参阅Cast Int to enum in Java(特别是提示values()是一项昂贵的操作,因为每次调用时都需要返回数组的副本).
java 常量 表达式,java – Enum中的常量表达式相关推荐
- 在Java语言的if语句是什么表达式,if语句中的条件表达式中只能使用
if语句中的条件表达式中只能使用关系或逻辑表达式吗?别的人十句话都不会伤到小编,但你的一句话就可以把小编伤得撕心裂肺. 不是,可以用任意表达式. if语句是指编程语言(包括c语言,C#,,java,V ...
- java args例子_Spring AOP中使用args表达式的方法示例
本文实例讲述了Spring AOP中使用args表达式的方法.分享给大家供大家参考,具体如下: 一 配置 xmlns:xsi="http://www.w3.org/2001/XMLSchem ...
- python的常量和变量_python中的常量和变量代码详解
局部和全局变量: # name='lhf' # def change_name(): # # global name # name='帅了一比' # print('change_name',name) ...
- java中null是常量吗_C_NULL Julia中的常量
java中null是常量吗 Julia| C_NULL常数 (Julia | C_NULL Constant) C_NULL is a constant of Ptr{Nothing} type in ...
- el表达式遍历list中的list_EL表达式获取map和list集合中的值 | 学步园
Map的每个对象以key=value的形式给出 当forEach tag的item属性中的表达式的值是java.util.Map时,在var中命名的变量被设置为类型是java.util.Map.Ent ...
- JAVA 定义全局常量码表_【Java基础】java常量是什么?
ava常量是什么? JAVA常量就是在程序中固定不变的值,是不能改变的数据.例如数字1.字符"a".浮点数3.2等.在Java中,常量包括整型常量.浮点数常量.布尔常量.字符常量等 ...
- 以下选项中不正确的c语言字符型常量是,以上选项中,( )是不正确的C语言字符型常量 答案:”a”...
相关问题 下列选项中不是常量的是( ).: 选项 中 常量 以下,选项,中,C语言,常量, 语句,中,常量,表达式,值, 小区,处方,农作,调控,目标,人,常量,处方,农业机械, 中,小数,常量,默认 ...
- 为了熟练掌握动态SQL你必须要知道Mybatis中的OGNL表达式
前言 OGNL是个什么东西?很多刚入门Java的同学会有点陌生.但是在Structs流行的时代OGNL可是必会的数据渲染技术.它全称Object Graph Navigation Language,作 ...
- 《转》IN 查询时出现ORA-01795:列表中的最大表达式数为1000
问题描述: SQL进行IN查询时出现:java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000 解决办法: 问题原因是:SQL进行IN查询时,IN中的数据量 ...
最新文章
- 为什么处理有序数组比无序数组快?
- python knn-基于python实现KNN分类算法
- GlusterFS配置管理(五)
- IDEA中cannot resolve method getBean in applicationContext的解决方法
- 1032. 挖掘机技术哪家强(20)
- word删除分节符后之前的格式乱了_办公室高级技能之Word邮件合并拆分
- python创建虚拟环境命令_python 创建虚拟环境
- 三十六進制之間隨便轉換
- PostgreSQL 字符串分隔函数(regexp_split_to_table、regexp_split_to_array) 发表于 2020-06-01 | 阅读次数: 394
- 居民安装光伏系统常会碰壁 怎么样做才能少走弯路?
- TMS320C55x汇编语言编程
- 效率:标记语言:markdown
- 支付宝直付通怎么签约教程详解,支付宝直付通开通需要什么条件!
- 【一起学数据结构与算法分析】第二篇:字谜游戏
- 电池电压值转换为百分比
- 如何将Excel多行单元格文字合并到一个单元格中
- Vinted运营干货分享:Vinted国内使用详细步骤参考
- JavaScript实现堆叠图echarts
- android studio最新版下载,Android Studio mac版-Android Studio for mac下载 V4.2.1-PC6苹果网
- 江苏专转本计算机考试有操作题嘛,江苏专转本计算机模拟试题 6