在java的方法中定义一个常量_c语言中常量和常量表达式的区别

在java的方法中定义一个常量_c语言中常量和常量表达式的区别如果可能,修改getIndex()方法,使其返回枚举而不是整数.如果无法做到这一点,则需要将索引映射到枚举元素:鉴于以下枚举:publicenumIndex{ONE,TWO,THREE}您可以使用将索引映射到枚举元素Index.values()[index]给定你的方法IntegergetIndex(),你可以做类似的事情switch(Index.values()[getIndex()])…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

如果可能,修改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()是一项昂贵的操作,因为每次调用时都需要返回数组的副本).

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187842.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • verilog ifdef_verilog define

    verilog ifdef_verilog define注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。https://blog.csdn.net/Chauncey_wu/article/details/902897491.打开文件  int…

    2022年11月2日
  • linux shell if字符串比较大小,linux中shell if 判断总结

    linux shell if字符串比较大小,linux中shell if 判断总结UNIXShell里面比较字符写法-eq等于;-ne不等于;-gt大于;-lt小于;-le小于等于;-ge大于等于;-z空串;-n非空串;=两个字符相等;!=两个字符不等无论什么编程语言都离不开条件…

    2022年7月11日
  • 手把手教你获取x信本地数据库(利用Sqlcipher查看)

    手把手教你获取x信本地数据库(利用Sqlcipher查看)最近一直在研究Xposed等一些hook框架,进行学习做一些demo,这次就正好拿x信练练手,学习学习,也可以学习x信手机本地数据库的表结构设计等。好,废话不多说,直接开干。前提是你的电脑已经安装了adb相关程序,如果你本身就是安卓开发者,想必肯定安装了AndroidStudio,那里直接就有adb相关程序。其次,你准备一台已经root过的安卓手机(要安装的有使用过的x信应用,不

    2022年10月22日
  • leetcode394字符串解码(回溯|栈)「建议收藏」

    leetcode394字符串解码(回溯|栈)「建议收藏」给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = “3[a]2[bc]”输出:”aaabcbc”示例 2:输入:s =

    2022年8月8日
  • objectmapper json转对象_json数组转map

    objectmapper json转对象_json数组转map1.jsonObject转map相关jar包:importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Map.Entry;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;代码:JSONObjectuser=resJson.getJSONObj

    2022年10月4日
  • 第三章 —- 了解各种 Linux 文本编辑器

    第三章 —- 了解各种 Linux 文本编辑器了解各种Linux文本编辑器了解Linux中不同类型的文本编辑器解释Vi文本编辑器常用命令了解Linux中不同类型的文本编辑器解释Vi文本编辑器viniit.txt:如果niit.txt文件存在,就进入命令模式:如果不存在,就先创建,再进入命令模式命令模式:按键ESC,由输入模式进入命令模式特点:在文件的最下方,什么都不显示或者显示文件基本信息输入模式:按键aAiLoOrR,由命令模式进入输入模式特点:在文件的最下方出现–INSERT–

    2022年7月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号