首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在不指定类型的情况下引用我的Java Enum

如何在不指定类型的情况下引用我的Java Enum

提问于 2018-03-18 23:04:20
回答 2关注 0查看 117

我有一个类定义自己的枚举像这样:

代码语言:javascript
运行
AI代码解释
复制
public class Test
{
    enum MyEnum{E1, E2};

    public static void aTestMethod() {
        Test2(E1);  // << Gives "E1 cannot be resolved" in eclipse.
    }
    public Test2(MyEnum e) {}
}

如果我指定MyEnum.E1它工作正常,但我真的只想把它作为“E1”。任何想法我可以做到这一点,还是必须在另一个文件中定义这个工作?

结论:我无法获得正确的导入语法。因为有几个答案表明这是可能的,所以我要选择一个给我我需要的语法并且提升其他语法的答案。

顺便说一句,这是一个真正的奇怪的部分(在我得到静态导入工作之前),我写的使用枚举的switch语句不允许枚举按其类型作为前缀 - 所有其余部分代码需要它。伤了我的头。

回答 2

酒当歌

回答已采纳

发布于 2018-03-19 07:42:54

实际上,你可以做一个嵌套枚举的静态导入。下面的代码编译得很好:

代码语言:javascript
运行
AI代码解释
复制
package mypackage;

import static mypackage.Test.MyEnum.*;

public class Test
{
    enum MyEnum{E1, E2};

    public static void aTestMethod() {
        Test2(E1);  
    }

    public static void Test2(MyEnum e) {}
}

Crash

发布于 2018-03-19 08:33:39

可以对嵌套类执行静态导入:

代码语言:javascript
运行
AI代码解释
复制
import static apackage.Test.Enum.*;
和开发者交流更多问题细节吧,去 写回答
相关文章
java枚举类型enum的使用
最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义。既然不明白就抽时间研究下吧。 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。要了解枚举类型,建议大家先打开jdk 中的Enum类简单读一下,这个类里面
java达人
2018/01/31
1.2K0
JAVA枚举类型(Enum)的使用[通俗易懂]
在现实社会中,有些类的实例对象是固定的。例如季节,只有春夏秋冬。如果你创建了一个season类,你当然有义务维护这个类的实例对象只能是春(SPRING)、夏(SUMMER)、秋(AUTUMN)、冬(WINTER)这四个。这个时候就体现出枚举类的作用了,java中枚举类型就是针对这样的场景需求所设计的。
全栈程序员站长
2022/11/07
1.3K0
Java 枚举类型enum 的使用
Java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义。既然不明白就抽时间研究下吧。 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。要了解枚举类型,建议大家先打开jdk 
用户1220053
2018/02/09
1.3K0
Java基础 | 定义long类型不指定后缀的后果
原因是这样的,字面量类型java中默认采用整型而int最大值(2^31-1,2147483647),所以如果声明: long b = 60*60*24*1000*1000表达式的结果为86400000000已经溢出。所以在使用较大的long类型数据时,记得增加L 或者 l 后缀。
青山师
2023/05/05
2920
Java 枚举类型 enum
枚举类型是 Java 5 中增加的一个小特性,在此之前,实现枚举的方式为定义编译期常量形式。而代码中使用编译期常量的方式在理解性和安全性方面存在不足,单纯的常量数值不能够直观的体现出其作为枚举实例的目的,且实际中无限的取值空间也不能很好的与理论上有限的枚举空间相匹配。
zhipingChen
2018/10/09
1.3K0
枚举类型enum用法(enum类型)
例如,季节类,它只有4个实例(春、夏、秋、冬),并且这4个实例不会改变。可以用枚举类来表示:
全栈程序员站长
2022/08/01
3.2K0
java 引用类型
我刚接触java、对于引用的认识。就是 Student stu=new Student();stu就是那个引用,至于这个stu是个什么样的引用,就不太清楚了。 中间看HashMap的时候,提到了一个弱引用,哈,竟然还有强弱之分。 仔细一探,竟然有四种。 java 中对象的引用类型分为四种:强引用、弱引用、弱引用、虚引用
邹志全
2019/10/08
9470
Java引用类型
使用Java开发,我们不需要去管理对象的生命周期,因为JVM会帮我们回收垃圾,不过这就是安全的吗,显然不是,因为JVM 的堆区存在了很多未回收的对象实例,那么就有可能发生内存溢出,所以我们就有必要在对强引用,弱引用,软引用,虚引用 有所了解。
小四的技术之旅
2022/07/26
6430
Java引用类型
Java枚举(Enum)类型原理探求
Enum的全写是Enumeration,这个词的翻译是列举、逐条陈述、细目。在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串、整型),这种数据类型的变量值限定在固定的范围, 比如季节只有春夏秋冬,月份是12个。
用户7353950
2022/05/11
3420
Java枚举(Enum)类型原理探求
Java枚举(Enum)类型原理探求
Enum的全写是Enumeration,这个词的翻译是列举、逐条陈述、细目。在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串、整型),这种数据类型的变量值限定在固定的范围, 比如季节只有春夏秋冬,月份是12个。
用户1880875
2021/08/26
3690
Java引用类型
2.引用数据类型: 类 String 数组 抽象类 接口 枚举 ......
用户9996207
2023/01/13
6080
Java引用类型
聊聊Java的引用类型(强引用、软引用、弱引用、虚引用),示例WeakHashMap的使用【享学Java】
Java语言中的数据类型可划分为值类型和引用类型。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。 这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
YourBatman
2019/09/03
1.3K0
聊聊Java的引用类型(强引用、软引用、弱引用、虚引用),示例WeakHashMap的使用【享学Java】
java 的四种引用类型
在 java 对象存活判定算法的文章中,我们介绍了java 引用的分类。= 本文中,我们深入讨论一下四种引用究竟有什么区别,以及如何指定具体的引用方式。
用户3147702
2022/06/27
3150
java 的四种引用类型
【mysql】ENUM类型
ENUM类型 ENUM类型也叫作枚举类型,ENUM类型的取值范围需要在定义字段时进行指定。设置字段值时,ENUM类型只允许从成员中选取单个值,不能一次选取多个值。 其所需要的存储空间由定义ENUM类型时指定的成员个数决定。 文本字符串类型 长度 长度范围 占用的存储空间 ENUM L 1 <= L <= 65535 1或2个字节 当ENUM类型包含1~255个成员时,需要1个字节的存储空间; 当ENUM类型包含256~65535个成员时,需要2个字节的存储空
兮动人
2022/03/12
1.7K0
java字符串类型引用与字符类型引用的面试案例
此处考得知识点就是栈和堆的知识:为了加快访问速度,java四类八种是栈为其分配内存空间的,
全栈程序员站长
2022/06/30
3870
java基本变量和引用变量_引用类型与值类型的区别
Java中数据类型分为两大类:基本数据类型与复合数据类型。相应地,变量也有两种类型:基本类型与引用类型。
全栈程序员站长
2022/11/01
2K0
java的四种引用类型
java的引用分为四个等级:4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 ⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。  ps:强引用其实也就是我们平时A a = new A()这个意思。 ⑵软引用(SoftReference) 如果一个对象只具有软引用,则内存空间
xiangzhihong
2018/01/30
6470
java中finalized的用法_java中的引用类型
我们通常用构造器来创建对象,而Finalize正好相反,构造方法执行对象的初始化操作,finalize方法执行对象的销毁操作.
全栈程序员站长
2022/10/02
2K0
Java 引用类型简述
强引用 ( Strong Reference ) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。 ps:强引用其实也就是我们平时A a = new A()这个意思。 强引用特性 强引用可以直接访问目标对象。 强引用所指向的对象在任何时候都不会被系统回收。 强引用可能导致内存泄漏。 Final Reference 当前类是否是
tomas家的小拨浪鼓
2018/06/27
7380
点击加载更多

相似问题

C#与Java Enum的区别

21.5K

使用tsf如何引用指定ip的consol?

0140

如何在不联网的情况下运行 android cts?

085

如何在不启用负载均衡的情况下,将容器服务发布到公网?

1311
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
平安资管 | 架构师擅长4个领域
到家集团 | 技术VP擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档