草庐IT

枚举法

全部标签

java - 我可以在 Java 枚举上使用构建器模式吗

我正在重写一些代码,我已经决定了重新创建类的方式,因为有固定数量的工作表,我将它们创建为枚举。这是基于构建器模式与伸缩构造器的可读性的决定。我的代码获取了一些.xls文件,添加了标题(并从其他.xls文件中读取了一些)和一些子表。然后,它以特定方式将各种这些工作表合并在一起,以在主Excel工作簿上制作标签。我的问题是一些工作簿选项卡采用不同数量的工作表作为参数。我正在尝试应用构建器模式。这是我正在尝试编写的代码:publicenumworkBookSheet{mySheet1("Name1","mainSheet1.xls",true,1).addSubSheet("pathToSu

Java 枚举 : Refactoring switch statements 'constant expression required' compile error?

我有一个类为我的应用程序声明常量publicclassGroupConstants{..publicstaticfinalintINTEGER_VALUE=1;publicstaticfinalintLONG_VALUE=2;publicstaticfinalintSTRING_VALUE=3;..}代码中有一组switch语句privatestaticObjectgetValue(StringstringValue,Parameterparameter)throwsInvalidPatternException{Objectresult=null;switch(parameter.g

【C语言】位段,枚举和联合体详解

 目录1.位段1.1什么是位段1.2位段的内存分配1.3位段的跨平台问题2.枚举2.1枚举类型的定义2.2枚举的优点3.联合(共用体)3.1联合类型的定义3.2联合的特点3.3联合大小的计算1.位段1.1什么是位段位段的声明和结构体是类似的,有两个不同:1.位段的成员必须是int、unsignedint或signedint。2.位段的成员名后边有一个冒号和一个数字。比如:structA{ int_a:2; int_b:5; int_c:10; int_d:30;};A就是一个位段类型。那位段A的大小是多少?printf("%d\n",sizeof(structA)); 在VS上位段A的大小是8

java - 为什么这个枚举代码是对静态字段的非法引用?

此代码无法编译,因为存在对静态字段的非法引用。publicenumFoo{A,B;privateFoo[]foos=newFoo[]{Foo.A};}你不应该能够从非静态字段初始化器访问静态字段吗?例如:publicclassFoo{staticintA;privateint[]foos=newint[]{Foo.A};}这编译得很好。请注意,在第一个示例中将foos设置为静态编译。 最佳答案 查看Java语言规范,第三版,第8.9节http://java.sun.com/docs/books/jls/third_edition/h

java - Freemarker:if 语句中的枚举

在我的if语句中,我想将JDK1.5枚举变量与枚举文字进行比较。例如:...但是我得到了这个异常(exception):freemarker.core.InvalidReferenceException:ExpressionProblemStatisticTypeisundefinedonline430,column87inindex.html.ftl.atfreemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125)atfreemarker.core.TemplateObject.invalidTypeExc

java - 通过使用特定于该枚举的 int 来设置枚举?

大家好。所以我有一组枚举和一个带有与这些枚举对应的整数的数据库。像这样的东西,例如:publicstaticenumDay{SUNDAY(1),MONDAY(2),TUESDAY(3),WEDNESDAY(4),THURSDAY(5),FRIDAY(6),SATURDAY(7);publicfinalintfId;privateDay(intid){this.fId=id;}}我还有一个数据库,它只用整数来引用这些天,这些整数对应于上面枚举集中的int。我想要做的是查询一个数据库,它将返回一个整数,然后根据从数据库返回的整数将枚举数设置为一个对象。我可以这样做:publicstatic

java - 以多态方式将 Java 枚举值转换为字符串列表

我有一些辅助方法可以将枚举值转换为适合由HTML显示的字符串列表元素。我想知道是否有可能将它们重构为一个单一的多态方法。这是我现有方法之一的示例:/***Getsthelistofavailablecolours.**@returnthelistofavailablecolours*/publicstaticListgetColours(){Listcolours=newArrayList();for(Colourcolour:Colour.values()){colours.add(colour.getDisplayValue());}returncolours;}我对Java泛型还

java - 无法在 Eclipse 中编译枚举

在Eclipse中尝试在我的Android项目中引入枚举时,我遇到了以下问题:编译器说:无法解析类型java.lang.Enum。它是从所需的.class文件中间接引用的Enum类型不是通用的;它不能用参数参数化我在Ubuntu10.04下工作并使用Eclipsev.3.5.2。尝试同时使用Java6OpenJDK和Java6Sun,但没有成功。谁能帮我解决这个问题?代码如下:publicclassMyClass{publicMyClass(){}...enumMyEnum{CONST1,CONST2,CONST3;}} 最佳答案

java - Java 枚举的性能?

我正在实现一款2人游戏,该游戏将在紧密循环中运行数十万次,然后性能至关重要。我的代码实际上是这样的:publicclassTable{privatefinalintWHITE_PLAYER=+1;privatefinalintBLACK_PLAYER=-1;privatefinalintcurrentPlayer;privatefinalintotherPlayer;...}我想知道如果我会选择替换,我是否会受到任何性能影响privatefinalintWHITE_PLAYER=+1;privatefinalintBLACK_PLAYER=-1;定义为枚举publicenumPlaye

java - 为什么枚举构造函数不能访问静态字段

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whycan’tenum’sconstructoraccessstaticfields?enumTest{e1,e2;inti=0;staticintj=5;Test(){System.out.println(i+""+j);}}在上面的代码中,构造函数可以访问实例变量,但不能访问静态变量J。我读过与其他作者相关的答案都说e1和e2在J(静态字段)初始化之前初始化,但是根据javaspec所有静态字段当类加载到内存时初始化,即在运行构造函数之前。因此,在运行Test()构造函数之前,必须初始化静态变量j。我无