在Java中,Enum可以做Enum做的伟大事情,但也可以有方法(行为和逻辑)。与使用枚举类相比,这有什么优势?也欢迎使用简单的示例来说明这一点。 最佳答案 这是一个简单的例子:enumRoundingMode{UP{publicdoubleround(doubled){returnMath.ceil(d);}},DOWN{publicdoubleround(doubled){returnMath.floor(d);}};publicabstractdoubleround(doubled);}
为什么不能在switchcase中将枚举值用作字符串?(或者这有什么问题:)Stringargument;switch(argument){caseMyEnum.VALUE1.toString()://Isn'tthisequalto"VALUE1"?//somethingbreak;caseMyEnum.VALUE2.toString()://somethingelsebreak; 最佳答案 您只能使用在编译时已知的字符串。编译器无法确定该表达式的结果。也许你可以试试Stringargument=...switch(MyEnum.
我有3个带有常量的字符串数组。例如:String[]digit={"one","two","three"};String[]teen={"ten","twenty","thirty"};String[]anchors={"hundred","thousand","million"};我正在考虑将它们分别转移到枚举中,所以我将有3个枚举类:digit、teen和anchors以及getValue方法实现。但我不想将它们放在单独的文件中,因为我只有少量数据和相同类型的数据。在同一个有意义的java文件中拥有所有这些访问方法的最佳方法是什么? 最佳答案
enumgeneralInformation{NAME{@OverridepublicStringtoString(){return"Name";}},EDUCATION{@OverridepublicStringtoString(){return"Education";}},EMAIL{@OverridepublicStringtoString(){return"Email";}},PROFESSION{@OverridepublicStringtoString(){return"Profession";}},PHONE{@OverridepublicStringtoString()
万岁!这段代码工作了一段时间,然后我决定添加一种默认颜色,然后它就停止工作了。我收到以下错误:1errorfound:File:Status.java[line:20]Error:Status.java:20:illegalreferencetostaticfieldfrominitializer在编译时使用以下代码。importjava.awt.Color;enumStatus{OFF("Off"),TRAINING("Training",newColor(255,191,128)),BEGINNER("Beginner",newColor(128,255,138)),INTERME
有没有办法填充JavaFXComboBox或ChoiceBox枚举的所有枚举?这是我尝试过的:publicclassTest{publicenumStatus{ENABLED("enabled"),DISABLED("disabled"),UNDEFINED("undefined");privateStringlabel;Status(Stringlabel){this.label=label;}publicStringtoString(){returnlabel;}}}在另一个类中,我试图填充ComboBox:ComboBoxcbxStatus=newComboBox();cbxSt
在Java中有没有办法声明一个枚举,其值可以一起使用?例如:enumFileAccess{Read,Write,ReadWrite}是否可以将ReadWrite定义为Read|写(或任何会产生相同结果的东西)? 最佳答案 您使用EnumSet:EnumSetreadWrite=EnumSet.of(FileAccess.Read,FileAccess.Write);这实际上比C#/.NET方式更优雅,IMO-除其他外,您可以轻松区分集合和单个值。 关于java-可以合并Java枚举(如C
如果我必须在使用该对象之前对其进行初始化,那么初始化基于java枚举的单例的正确方法是什么。我已经开始编写代码了,但我不确定我是否做对了。你能帮我实现这个适合我的单例吗?publicenumBitCheck{INSTANCE;privatestaticHashMapprops=null;publicsynchronizedvoidinitialize(HashMapproperties){if(props==null){props=properties;}}publicbooleanisAenabled(){return"Y".equalsIgnoreCase(props.get("A
我有一个枚举类型(为了参数的缘故CarModel),在整个应用程序(许多类)中使用。publicenumCarModel{DIABLO,P911,DB7;}我有多种方法以不同的方式使用此CarModel枚举类型,并且每个方法都有一个switch语句来根据枚举类型设置一些String变量,然后再开始继续做其他事情。(例如设置某些型号的制造商,或设置原产国等。这些结果在运行时是静态的)问题是,如果我想向枚举中添加一个新模型,我需要转到每个方法,并扩展/修改switch语句以处理它的存在。这很容易导致人为错误和/或代码重复(如果各种方法使用相同的switch语句)。与其全面使用switch语
在java中我有:publicclassMyClass{publicenumSTATUS{ZERO,ONE,TWO}publicnativeSTATUSnativeGetStatus();...privateSTATUSstate=nativeGetStatus();//returnsenumprivateSTATUSstate2=nativeGetStatus();//returnsenum}我希望native方法“nativeGetStatus”返回此枚举值。JNI返回整数并与java中的枚举值进行比较是一个选项,但想知道是否可以通过jobject返回值并将其直接分配给状态?如果是