草庐IT

java - 是否有类似 C 的方法从 Java 中的枚举中获取项目编号?

也许这是一个简单的基础问题有一个枚举publicenumTK{ID,GROUP,DATA,FAIL;}我可以得到订单号,例如ID=0,GROUP=2,DATA=3,FAIL=4吗?这是一种方法,但是很奇怪而且很长!=SpublicenumTK{ID(0),GROUP(1),DATA(2),FAIL(3);intnum;TK(intn){this.num=n;}publicintget(){returnnum;}};为了获取数字,所以我写了TK.ID.get()、TK.GROUP.get()等...我不喜欢这样有更好的方法吗?(C枚举,C宏..我想你们俩)谢谢

java - 在 switch-case 语句中使用枚举的序数值

对于我的项目,我使用枚举,我需要实现switch-case语句,其中检查特定枚举值的序号,如下所示:switch(variable){caseMyEnum.A.ordinal():returntrue;caseMyEnum.B.ordinal():returntrue;default:returnfalse;}注意:返回值只是一个例子。不幸的是,Eclipse(我使用的是1.6JDK)给出了我的编译错误“case表达式必须是常量表达式”。我应该怎么办?除了静态查找表,还有其他方法吗,在此处描述:Convertfromenumordinaltoenumtype?

Java 枚举 - 无法在定义之前引用字段

我有一个像下面这样的枚举,但Eclipse说每个对立对的第一个定义中有错误。publicenumBaz{yin(yang),//Cannotreferenceafieldbeforeitisdefinedyang(yin),good(evil),//Cannotreferenceafieldbeforeitisdefinedevil(good);publicfinalBazopposite;Baz(Bazopposite){this.opposite=opposite;}}我想要完成的是能够使用Baz.something.opposite获取Baz.something的opposite

java - 枚举,在开关盒中使用

我定义了一个枚举,它包含方法返回类型,如“String”、Float、List、Double等。我将在switchcase语句中使用它。例如我的枚举是publicenumMethodType{DOUBLE,LIST,STRING,ARRAYLIST,FLOAT,LONG;}在属性文件中,我有如下键值对。Test1=字符串Test2=双在我的代码中,我正在获取key的值。我需要使用SwitchCase中的VALUE来确定类型,并基于此我必须实现一些逻辑。例如这样的东西switch(MethodType.DOUBLE){caseDOUBLE://Dobulelogic}有人可以帮我实现这个

java - 如何模拟 ENUM 类中的方法?

我正在为下面的ENUm类编写JUNIT测试用例。我的下面的类(class)只会给我运行代码的当前机器的主机名。当我编写JUNIT测试时,我如何模拟下面的类,以便我可以随时更改getHostName()方法,以便每当我调用getDatacenter(),它可以通过模拟它返回我传递的任何主机名。我不想将其作为参数化。我只想测试某些情况,同时在模拟时更改主机名。publicenumDatacenterEnum{DEV,DC1,DC2,DC3;publicstaticStringforCode(intcode){return(code>=0&&code 最佳答案

java - 具有属性的 UML 建模枚举

我想用具有一个或多个属性的Java枚举(enum)创建一个UML图,但我对如何做感到困惑。例如,枚举可以这样声明:publicenumEnumeration_type{LITERAL_A("attr1_value",attr2_value,attr3_value),LITERAL_B("attr1_value",attr2_value,attr3_value);finalStringattr1;finaltype_1attr2=initial_value_1;finaltype_2attr3;Enumeration_type(Stringattr1,type_1attr2,type_2

java - 将类文字作为交集类型返回

我有几个实现一些通用接口(interface)的枚举,我想从方法中返回类文字。但是我无法正确指定交集类型。请参阅下面说明问题的代码示例。publicclassGenericsTest{interfaceIface{}enumE1implementsIface{}enumE2implementsIface{}&Iface>ClassgetEnum1(){returnE1.class;//ERRORincompatibletypes:java.lang.Classcannotbeconvertedtojava.lang.Class}Class>getEnum3(){returnE1.cla

java - 将 Map<Enum, Enum> 存储为字符串

我需要有关在JPA2中存储映射的帮助,其中键和值都是枚举(Map)。使用Hibernate作为我的JPA提供程序,它将枚举存储为blob,但我需要将数据存储为字符串。我尝试了以下注释来解决这个问题:@ElementCollection(fetch=FetchType.EAGER)@MapKeyEnumerated(value=EnumType.STRING)publicMapgetElementsMap(){returnelementsMap;}但是数据仍然作为blob存储在数据库中。有人解决过这个问题吗? 最佳答案 @Enumer

java - 在 Java 中使用枚举实现多例

我想要一个特定复杂接口(interface)实例的有限固定目录。标准multitonpattern有一些很好的特性,比如惰性实例化。然而,它依赖于诸如字符串之类的键,这似乎很容易出错且脆弱。我想要一个使用枚举的模式。它们具有许多强大的功能并且非常强大。我试图为此找到一个标准的设计模式,但还是一片空白。所以我提出了自己的想法,但我对此并不十分满意。我使用的模式如下(这里的界面高度简化以使其可读):interfaceComplex{voidmethod();}enumComplexItemimplementsComplex{ITEM1{protectedComplexmakeInstanc

java - ClassLoad 一个 Enum 类型

如何通过ClassLoader或类似机制实例化Enum类型?(我试图将所有内容都保存在独立服务器应用程序的同一上下文类加载器下)。我有这样的东西:ClassLoaderloader=newCustomClassLoader(parent,libDir);Thread.currentThread().setContextClassLoader(loader);//troubleareaClasscontainerClass=loader.loadClass("com.somepackage.app.Name$SERVER");我错误地认为只需加载Enum就足以启动它(它的私有(priva