此代码无法编译,因为存在对静态字段的非法引用。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
大家好。所以我有一组枚举和一个带有与这些枚举对应的整数的数据库。像这样的东西,例如:publicstaticenumDay{SUNDAY(1),MONDAY(2),TUESDAY(3),WEDNESDAY(4),THURSDAY(5),FRIDAY(6),SATURDAY(7);publicfinalintfId;privateDay(intid){this.fId=id;}}我还有一个数据库,它只用整数来引用这些天,这些整数对应于上面枚举集中的int。我想要做的是查询一个数据库,它将返回一个整数,然后根据从数据库返回的整数将枚举数设置为一个对象。我可以这样做:publicstatic
我有一些辅助方法可以将枚举值转换为适合由HTML显示的字符串列表元素。我想知道是否有可能将它们重构为一个单一的多态方法。这是我现有方法之一的示例:/***Getsthelistofavailablecolours.**@returnthelistofavailablecolours*/publicstaticListgetColours(){Listcolours=newArrayList();for(Colourcolour:Colour.values()){colours.add(colour.getDisplayValue());}returncolours;}我对Java泛型还
在Eclipse中尝试在我的Android项目中引入枚举时,我遇到了以下问题:编译器说:无法解析类型java.lang.Enum。它是从所需的.class文件中间接引用的Enum类型不是通用的;它不能用参数参数化我在Ubuntu10.04下工作并使用Eclipsev.3.5.2。尝试同时使用Java6OpenJDK和Java6Sun,但没有成功。谁能帮我解决这个问题?代码如下:publicclassMyClass{publicMyClass(){}...enumMyEnum{CONST1,CONST2,CONST3;}} 最佳答案
我正在实现一款2人游戏,该游戏将在紧密循环中运行数十万次,然后性能至关重要。我的代码实际上是这样的:publicclassTable{privatefinalintWHITE_PLAYER=+1;privatefinalintBLACK_PLAYER=-1;privatefinalintcurrentPlayer;privatefinalintotherPlayer;...}我想知道如果我会选择替换,我是否会受到任何性能影响privatefinalintWHITE_PLAYER=+1;privatefinalintBLACK_PLAYER=-1;定义为枚举publicenumPlaye
这个问题在这里已经有了答案:关闭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。我无
我已经启动了一个相当大的所谓描述符枚举,我想将其用作模型中的引用列表。但现在我第一次遇到了编译器/VM限制,所以我正在寻找处理这个问题的最佳解决方案。这是我的错误:静态初始化程序的代码超出了65535字节的限制很明显这是从哪里来的——我的Enum有太多的元素。但我需要这些元素-没有办法减少该集合。最初我计划使用单个枚举,因为我想确保枚举中的所有元素都是唯一的。它用于Hibernate持久性上下文,其中对枚举的引用作为字符串值存储在数据库中。所以这一定是独一无二的!我的Enum的内容可以分为几组属于一起的元素。但是拆分Enum会消除我在编译时获得的独特安全性。或者这可以通过某种方式使用多
我创建了一个带有一个私有(private)成员变量的枚举。当我尝试访问成员变量时,编译状态为“无法对非静态字段memberVariable进行静态引用”。如果变量不是私有(private)的(例如protected或受包保护的),它可以正常编译。我不明白变量的范围与实现的抽象函数的类型(静态,非静态)有什么关系。谁能教教我?publicenumEnumWithAbstractMethodAndMembers{TheOneAndOnly(1){@OverridepublicintaddValue(finalintvalue){returnmemberVariable+value;}};p
我是Python的新手,我想知道我是否可以构建具有复杂结构的枚举,而不仅仅是原始类型。例如(伪代码):Point::Enumx,yconstructor(x,y){...}bottom_left=Point(0,0)top_left=Point(0,100)top_right=Point(100,100)bottom_right=Point(100,0)到目前为止,我只能找到提到带有字符串或整数的枚举的Python文档。 最佳答案 如果您希望Point作为跟踪角点的Enum的独立实体,那么您需要将它们分开:fromenumimpor
我有一个枚举classNationality:Poland='PL'Germany='DE'France='FR'...Spain='ES'我有两个方法原型(prototype):#Iwantsomethinklikeinc#defconvert_country_code_to_country_name(country_code):printEnum.Parse(typeof(Nationality),country_code)#thisasecondsolution,butithasalotofifsdefconvert_country_code_to_country_name(co