在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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python drawcontours_2021-02-15 Python OpenCV drawContours()函数

    python drawcontours_2021-02-15 Python OpenCV drawContours()函数drawContours image contours contourIdx color thickness 1 lineType LINE 8 hierarchy noArray maxLevel INT MAX offset None 该函数用于绘制轮廓线或者填充轮廓线 如果参数 那么就绘制轮廓线 如果参数 则填充轮廓线内的区域 参数 image 目标图像 contour

    2025年8月30日
    4
  • amos路径分析结果解读_swot模型个人分析

    amos路径分析结果解读_swot模型个人分析基于Amos的路径分析与模型参数详解1数据准备1.1数据格式转换2结构方程模型建立2.1变量相互关系确定2.2路径图绘制2.3数据导入3模型运行与结果3.1模型方法参数选择3.2模型输出参数选择3.3模型运行3.4模型结果1数据准备  本文所用数据包括某地百余个土壤采样点对应的一种土壤属性含量变量(BC)及与其有关的5种环境变量(Temp,Slope,Roden,POI,GAIA),存储于“xlsx”文件内。由于本文所用的土壤采样点空间数据集并不是我的,因此

    2022年8月24日
    13
  • 2年开发经验总结的java面试题(有完整答案)

    2年开发经验总结的java面试题(有完整答案)一、Java基础部分1、Java基本数据类型有八种:四种整数类型(byte、short、int、long),两种浮点数类型(double、float)一种字符类型char,一种布尔类型Boolean记忆:8位:Byte(字节型)16位:short(短整型)、char(字符型)32位:int(整…

    2022年6月18日
    53
  • 环境搭建 | Mac 环境变量配置

    环境搭建 | Mac 环境变量配置Mac环境变量配置mac一般使用bash作为默认shell,如果安装了ohmysh,则默认使用zshshell。Mac系统环境变量的加载顺序:/etc/profile/etc/paths~/.bash_profile~/.bash_login~/.profile~/.bashrc/etc/profile和/etc/paths是系统级别的,系统启动后就会…

    2022年6月17日
    24
  • 013实现使用两个堆栈队列(keep it up)

    013实现使用两个堆栈队列(keep it up)

    2022年1月8日
    45
  • bindService调用流程

    bindService调用流程时序图源码执行流程【ContextImpl.java】@OverridepublicbooleanbindService(Intentservice,ServiceConnectionconn,intflags){warnIfCallingFromSystemProcess();retu…

    2022年6月10日
    34

发表回复

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

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