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


相关推荐

  • ubuntu安装gcc-6

    ubuntu安装gcc-6原文:https://blog.csdn.net/sinat_23246437/article/details/543426331.安装gcc-6:sudoapt-getupdate&&\sudoapt-getinstallbuild-essentialsoftware-properties-common-y&&\sudoadd…

    2022年7月24日
    22
  • jmeter的正则表达式提取器_jmeter正则提取器的使用

    jmeter的正则表达式提取器_jmeter正则提取器的使用当我们的请求有这种类型的多种数据,我们要怎么获取到全部?首先,先在正则表示式提取器里面添加我们找到的左右边界然后写好正则表达式最后确定边界是唯一的然后我们运行一下,一下只就运行全部出来了…

    2025年8月26日
    8
  • pytorch交叉熵损失函数计算_pytorch loss不下降

    pytorch交叉熵损失函数计算_pytorch loss不下降MSE:MeanSquaredError(均方误差)含义:均方误差,是预测值与真实值之差的平方和的平均值,即:MSE=1N∑i=1n(xi−yi)2\begin{aligned}MSE=\cfrac{1}{N}\sum_{i=1}^n(x_i-y_i)^2\end{aligned}MSE=N1​i=1∑n​(xi​−yi​)2​  但是,在具体的应用中跟定义稍有不同。主要差别是参数的设置,在torch.nn.MSELoss中有一个reduction参数。reduction是维度要不要

    2022年9月18日
    0
  • unity3d怎么挖坑_unity游戏教程

    unity3d怎么挖坑_unity游戏教程全是在学官教时遇到的坑,然后数小时后爬出来.同时会添加到处学来的的Unity技巧———————————————————-代码:1.使游戏对象运动的N种方式更全面的移动方式参考1、rigidbody.addforce(Vector3*speed)(见roll-a-ball)……

    2022年9月15日
    2
  • Ubuntu18.04 安装 Anaconda3「建议收藏」

    1.下载Anaconda下载Anaconda3-5.2.0-Linux-x86_64.sh(Ubuntu18.04的对应的Anaconda版本):法1:在Anaconda官网下载,比较费时,如图1所示。…

    2022年4月9日
    50
  • 【转】细说.NET中的多线程 (六 使用MemoryBarrier,Volatile进行同步)

    【转】细说.NET中的多线程 (六 使用MemoryBarrier,Volatile进行同步)上一节介绍了使用信号量进行同步,本节主要介绍一些非阻塞同步的方法。本节主要介绍MemoryBarrier,volatile,Interlocked。MemoryBarriers本文简单的介绍一下这两个概念,假设下面的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 usingSystem; .

    2022年7月12日
    17

发表回复

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

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