java+switch语句+枚举_Java:在子类下使用带有枚举的switch语句
Java:在子类下使用带有枚举的switch语句
首先,我将说明我对C#中的枚举更加熟悉,看起来java中的枚举非常混乱。
正如您所看到的,我正在尝试在下一个示例中使用switch语句@enums,但无论我在做什么,我总是会收到错误。
我收到的错误是:
必须使用不合格的枚举常量VALUE_A替换合格的案例标签SomeClass.AnotherClass.MyEnum.VALUE_A
事情是我非常理解错误,但我不能只编写VALUE_A,因为枚举位于另一个子类中。 有没有办法解决这个问题? 为什么它会在Java中发生?
//Main Class
public class SomeClass {
//Sub-Class
public static class AnotherClass {
public enum MyEnum {
VALUE_A, VALUE_B
}
public MyEnum myEnum;
}
public void someMethod() {
MyEnum enumExample //...
switch (enumExample) {
case AnotherClass.MyEnum.VALUE_A: {
//..
break;
}
}
}
}
5个解决方案
425 votes
把它改成这个:
switch (enumExample) {
case VALUE_A: {
//..
break;
}
}
线索出现错误。 您不需要使用枚举类型限定case标签,只需使用其值。
darrengorman answered 2019-03-17T18:58:39Z
27 votes
Java自动推断case中元素的类型,因此标签必须是不合格的。
int i;
switch(i) {
case 5: //
}
MyEnum e;
switch (e) {
case VALUE_A: //
}
Kru answered 2019-03-17T18:59:04Z
2 votes
这应该做:
//Main Class
public class SomeClass {
//Sub-Class
public static class AnotherClass {
public enum MyEnum {
VALUE_A, VALUE_B
}
public MyEnum myEnum;
}
public void someMethod() {
AnotherClass.MyEnum enumExample = AnotherClass.MyEnum.VALUE_A; //...
switch (enumExample) {
case VALUE_A: { //
//..
break;
}
}
}
}
Woyzeck answered 2019-03-17T18:59:28Z
0 votes
以这种方式写someMethod():
public void someMethod() {
SomeClass.AnotherClass.MyEnum enumExample = SomeClass.AnotherClass.MyEnum.VALUE_A;
switch (enumExample) {
case VALUE_A:
break;
}
}
在switch语句中,您必须仅使用常量名称。
dash1e answered 2019-03-17T19:00:00Z
0 votes
这就是我使用它的方式。 它的工作非常出色 -
public enum Button {
REPORT_ISSUES(0),
CANCEL_ORDER(1),
RETURN_ORDER(2);
private int value;
Button(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
而switch-case如下图所示
@Override
public void onClick(MyOrderDetailDelgate.Button button, int position) {
switch (button) {
case REPORT_ISSUES: {
break;
}
case CANCEL_ORDER: {
break;
}
case RETURN_ORDER: {
break;
}
}
}
Jimit Patel answered 2019-03-17T19:00:32Z
java+switch语句+枚举_Java:在子类下使用带有枚举的switch语句相关推荐
- java运行class文件_java命令行下运行class文件
今天碰到了一个很变态的问题,写了一个很简单的HelloWord.java,内容如下: package com.yanjiuyanjiu; public class HelloWorld { publi ...
- java src 文件路径_java获取src下文件路径和获取webRoot下文件路径
获取src下的fileurl.properties文件路径 this.getClass().getResource("/fileurl.properties").getPath() ...
- JAVA生产环境验证_Java生产环境下性能监控与调优详解
本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优:通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出.cpu负载飙高等问题:学会线上代码调试,Tomcat.Nginx, ...
- Java笔记(一)向上向下转型,枚举,初始化,可变长参数,代理,多态,继承
写给自己看的笔记,很乱.如果有人感兴趣也可以看看,有问题可以问,我进行补充 这里写目录标题 Java数组传递 for循环 Java引用类型详解 可变长参数 ... 可变参数列表 Java参数类型变化 ...
- java 线程池 包_Java并发包下线程池类小结
并发包下的线程池技术虽然常用,但是知识点较多易忘.所以,参考网络资源做了一个小结,便于复习. 1.Executor接口 用于执行已提交的Runnable任务. Paste_Image.png 2.Ex ...
- java结束内层循环_java中结束循环的标志break和continue语句
break语句:用于结束整个循环,只能用于switch 和循环语句中. 当break使用在嵌套的循环中时,结束的是其所在的循环(即内循环) 那么怎样才能使其结束外层循环呢?这时就要使用跳转语句标记(标 ...
- java 模拟键盘输入_Java 在windows 下模拟鼠标键盘的输入
Java提供了一个很好的自动化测试类供我们去模拟鼠标键盘消息.以下是Robot的主要方法 Robot类的主要方法详细信息 1.mouseMove(int x,int y)将鼠标指针移动到给定屏幕坐标: ...
- ubuntu java 全屏显示_java 在ubuntu下实现全屏,上面的状态栏依然显示。如下图,不想要上面的状态栏...
源代码://-------------------------------------TestLogIn类importjavax.swing.*;importjava.awt.*;publicclas ...
- java util包类_java.util包下的类及常用方法
1.日期类 Date类 常用方法 创建日期对象:Date date = new Date ( ) ; 获取当前时间 以标准格式:date 获取当前时间的毫秒数:date.getTIme ( ) ...
最新文章
- Windows 技术篇-win+R运行搜索gpedit.msc提示“MMC 不能打开文件”解决方法
- lamp兄弟连视频笔记
- zip版mysql5.6_mysql 5.6 压缩包版安装方法
- 安装和运行Maven
- 六个细节改变提升 Android L 用户体验
- 【路径规划】基于matlab GUI改进的遗传算法机器人栅格地图避障路径规划【含Matlab 703期】
- Winform的菜单控件
- 如何避免出现SQL注入漏洞
- 【数据结构与算法】车辆路径问题(Vehicle Routing Problem,VRP)
- 2017年全国大学生电子设计竞赛报告(F题)调幅信号处理实验电路
- 火车头采集器文章伪原创插件工具
- HFSS Wave Port设置
- 【Unity】 HTFramework框架(十)Resource资源管理器
- 浅谈GOF设计模式之建造者模式(五)
- Appops权限管理
- 可视化搭建平台的参考网格线设计
- linux重启和关闭系统命令
- 操作无法完成。打印后台程序服务没有运行
- 阿里云Java后端一面面经
- 一加3t氢android8_一加3t氢android8_一加氢OS推出Android 8.0正式版 新系统流畅到飞起...
热门文章
- 从零开始学前端:if判断,for循环,,switch判断 --- 今天你学习了吗?(JS:Day4)
- trunk口_南京课工场IT培训:VLAN、Trunk与三层交换机的相关理论知识
- 比目鱼搜索不能用了_win10搜索功能失效解决办法
- 微课|中学生可以这样学Python(例5.6、例5.7):集合应用
- Python使用多线程搜索指定范围内的所有素数
- Python使用numpy滤除图像中的低频信号
- python 批量网址 网页截图_python实现网页截图
- 离职通知邮件主题写什么好_(原创)拿到了企业的offer后要注意什么?
- 机器视觉--图像形态学
- java split 正则_java split方法的实现 正则匹配