草庐IT

java - 从枚举返回计算值

请问我的问题是两个而且非常简单按原样误解枚举这个想法在我的代码中缺少一些重要的抽象代码示例,其中oprt.calc(x,y)不可编译,并带有警告cannotfindsymbolpublicenumOperation{PLUS{publicdoublecalc(doublex,doubley){returnx+y;}},MINUS{publicdoublecalc(doublex,doubley){returnx-y;}},MULTILPLE{publicdoublecalc(doublex,doubley){returnx*y;}},DIVIDED_BY{publicdoublecal

java - 当枚举类型引用是 Class<?> 时,如何将 String 转换为枚举值?

我有代码使用其setter方法在对象上设置值。其中一个setter将Enum类型作为方法参数。代码看起来像这样:Stringvalue="EnumValue1";Methodsetter=getBeanWriteMethod("setMyEnumValue");Classtype=setter.getParameterTypes()[0];ObjectconvertedValue=null;if(type.isEnum()){convertedValue=convertToEnum(value,type);}else{convertedValue=ClassUtils.convertT

java - 有没有欧洲国家和语言的java Enum?

是否有用于在某处列出欧洲国家和语言的任何java(>5)枚举?如果没有,我可能会从这个列表中写下它们:http://www.nationsonline.org/oneworld/european_languages.htm但如果我能避免这种负担,那就太好了!P.S.:最后,我开始使用geonames.org上的geoNames网络服务。对于我在Groovy中使用此代码段的国家/地区:importorg.geonames.*ToponymSearchCriteriasc=newToponymSearchCriteria()sc.setContinentCode("eu")sc.setFe

java - 枚举中的业务逻辑?

将任何类型的业务逻辑放入枚举中是否被认为是好的做法?不是真正密集的逻辑,但更像是方便的实用方法。例如:publicenumOrderStatus{OPEN,OPEN_WITH_RESTRICTIONS,OPEN_TEMPORARY,CLOSED;publicstaticbooleanisOpenStatus(OrderStatussts){returnsts==OPEN||sts==OPEN_WITH_RESTRICTIONS||sts==OPEN_TEMPORARY;}} 最佳答案 恕我直言,这使您能够将相关信息放在可能被使用和搜

java - 在 Java 中,如何在枚举本身中获取枚举的值?

我想为我的枚举Color覆盖toString()。但是,我无法弄清楚如何在Color枚举中获取Color实例的值。有没有办法在Java中执行此操作?例子:publicenumColor{RED,GREEN,BLUE,...publicStringtoString(){//return"R"forRED,"G",forGREEN,etc.}} 最佳答案 也可以开启this的类型,例如:publicenumFoo{A,B,C,D;@OverridepublicStringtoString(){switch(this){caseA:ret

java - JUnit 测试 : Suppress enum constructor by mocking?

我知道可以模拟单个枚举(使用HowtomockanenumsingletonclassusingMockito/Powermock?),但我有1000个枚举值,它们可以调用5个不同的构造函数。枚举值在开发过程中经常发生变化。我只想为我的JUnit测试模拟一两个。我不关心其余的,但它们仍然是实例化的,这会调用一些讨厌的东西,从文件系统加载枚举的值。是的,我知道这是非常糟糕的设计。但现在我没有时间更改它。目前我们正在使用Mockito/powermock。但是任何可以解决这个问题的框架sh**我的意思是欢迎糟糕的设计。假设我有一个与此类似的枚举:publicstaticenumMyEnum

java - 如何将 C 中的许多小联合写入 Java

我将把C代码重写成Java。原始C代码的核心是硬件包装器。在C中,我们为每个HW寄存器使用了很多联合,例如:typedefunionRegIntStatus{u8reg;struct{u8bit0_abc:1;u8bit1_cde:1;u8bit2_xyz:1;u8bit3_7_rsvd:5;}bits;}regABC;然后我们像这样使用它regABCr;r.reg=0r.bits.bit0_abc=1;call(r.reg)想象一下有很多这样的寄存器。比方说40。如何将它实现到没有40个类文件的java中?我在想创建一个类univerasl_reg{//whereTwillbesom

java - 带有美元符号和数字 .class 的 java 文件名是什么意思 (name$1.class)?

这个问题在这里已经有了答案:javacompiledclassescontaindollarsigns(4个答案)关闭9年前。当我编译我的javaEnumDay时,它生成了他的Day.class文件和8Day$#.class文件,所以我想知道为什么编译器生成8个$#.class而不是7个,因为我有7个枚举常量,但有8个重写注释,我知道Dollar.class文件是为每个内部类或枚举常量生成的,但是八个.class文件的生成目的是什么?packagecom.kaissersoft.test.objective.one.three.enums;publicenumDay{SUNDAY(01

java - 为什么我的空检查这么慢?

所以我的代码目前看起来像这样publicbooleanin(TransactionType...types){if(types==null||types.length==0)returnfalse;for(inti=0;i我改成了这个publicbooleanin(TransactionType...types){if(types==null||types.length==0)returnfalse;for(inti=0;i(TransactionType是一个包含大约30个值的枚举)结果让我震惊。在我所有的测试中,第二个要快一个数量级。我预计可能会快2倍,但不是一个数量级。为什么不同

java - 用 javap 反汇编的枚举不显示构造函数参数

当我用javap反汇编枚举时,枚举的隐式构造函数参数似乎丢失了,我不明白为什么。这是一个枚举:enumFoo{X}我用这个命令编译和反汇编这个(在Java8u60上):javacFoo.java&&javap-c-pFoo这是我得到的输出:finalclassFooextendsjava.lang.Enum{publicstaticfinalFooX;privatestaticfinalFoo[]$VALUES;publicstaticFoo[]values();Code:0:getstatic#1//Field$VALUES:[LFoo;3:invokevirtual#2//Meth