草庐IT

java - 为枚举构建一个通用的 DynamoDB 编码

我正在为DynamoDB使用AmazonWebServicesSDKforJava;试图满足@DynamoDBMarshalling的接口(interface):Class>marshallerClass();我构建了一个接收任何枚举的编码器:publicclassEnumMarshaller>implementsDynamoDBMarshaller{@OverridepublicStringmarshall(TgetterReturnResult){returngetterReturnResult.toString();}@OverridepublicTunmarshall(Clas

java - 如何在 Java 中按字母顺序对枚举成员进行排序?

我有一个像下面这样的枚举类:publicenumLetter{OMEGA_LETTER("Omega"),GAMMA_LETTER("Gamma"),BETA_LETTER("Beta"),ALPHA_LETTER("Alpha"),privatefinalStringdescription;Letter(){description=toString();}Letter(Stringdescription){this.description=description;}publicStringgetDescription(){returndescription;}}稍后在我的代码中,我基

java - 如何在 Java 中使用反射创建枚举实例?

当我在阅读EffectiveJava时,作者告诉我单元素enum类型是实现单例的最佳方式,因为我们不必须考虑复杂的序列化或反射攻击。这意味着我们不能使用反射创建enum的实例,对吧?我做了一些测试,这里有一个enum类:publicenumWeekday{}然后我尝试创建一个Weekday的实例:ClassweekdayClass=Weekday.class;Constructorcw=weekdayClass.getConstructor(null);cw.setAccessible(true);cw.newInstance(null);如您所知,这是行不通的。当我将关键字enum更

java - 为什么 Eclipse 要求在枚举中声明 strictfp

我正在尝试Java中的枚举类型。当我写下面的类时,publicclassEnumExample{publicenumDay{privateStringmood;MONDAY,TUESDAY,WEDNESDAY;Day(Stringmood){}Day(){}}}编译器说:tokenString语法错误,应该是strictfp。我知道什么是strictfp但它会出现在这里吗? 最佳答案 您可能忘记在最后一个枚举常量后添加分号。publicenumElement{FIRE,WATER,AIR,EARTH,//

Java 枚举和泛型

这件事困扰了我一段时间。我问过questions之前,但可能措辞不好,例子太抽象了。所以不清楚我到底在问什么。我会再尝试。请不要仓促下结论。我预计这个问题根本不容易回答!为什么我不能在Java中使用带有泛型类型参数的枚举?问题不在于为什么它在句法上是不可能的。我知道它只是不受支持。问题是:为什么JSR人员“忘记”或“忽略”了这个非常有用的特性?我无法想象与编译器相关的原因,为什么它不可行。这是我想做的事情。这在Java中是可能的。这是创建类型安全枚举的Java1.4方法://AmodelclassforSQLdatatypesandtheirmappingtoJavatypespubl

java - 如何将枚举类型存储为小写字符串?

我的模型类(件):publicclassUser...{@Enumerated(STRING)privateStatusstatus;...publicenumStatus{ACTIVE,INACTIVE;@OverridepublicStringtoString(){returnthis.name().toLowerCase();}}...publicStringgetStatus(){returnstatus.name().toLowerCase();}publicvoidsetStatus(Statusstatus){this.status=status;}}正如您在上面看到的,

java - 如何使用 hibernate 映射自定义枚举整数序数?

我有一个名为Status的枚举类,如下所示publicenumStatus{PENDING(0),SUCCESS(1),FAILED(-1);privateintst;privateStatus(intst){this.st=st;}}我尝试从其他类(class)映射这个状态枚举publicvoidsetStatus(Statusstatus){this.status=status;}@Enumerated(EnumType.ORDINAL)publicStatusgetStatus(){returnstatus;}当我运行这段代码时,我得到了java.lang.IllegalArgu

java - Java 函数式接口(interface)的单例作为枚举

在查看Comparators类的源代码时,我遇到了这些代码行。classComparators{//...enumNaturalOrderComparatorimplementsComparator>{INSTANCE;@Overridepublicintcompare(Comparablec1,Comparablec2){returnc1.compareTo(c2);}@OverridepublicComparator>reversed(){returnComparator.reverseOrder();}}//...}我想我明白这是做什么的。它是一个实现Comparator接口(i

java - 在 Java 中使用内部类 - 枚举

我有一个与内部类有关的非常具体的问题。让我向您展示一些示例代码:classFoo{MYOPTIONStemp;publicstaticenumMYOPTIONS{OPTION1,OPTION2,OPTION3;}}所以这个枚举在Foo类中。现在我想要做的是将临时变量设置为三个选项之一,但是在Foo类之外进行,比方说从一个名为External的类中进行。不幸的是,我无法使用set方法来执行此操作,因为External.setTemp(MYOPTIONS.OPTION1)无效,因为枚举在外部类中不可见。所以我唯一能想到的就是在Foo类中使用三个方法:publicvoidsetTempOpt

java - 枚举中的特殊字符

我想将特殊字符、括号('('和')')和撇号(')放入枚举中。我有这个:privateenumspecialChars{"(",")","'"}但它不起作用。Java说了一些关于无效标记的事情。我该如何解决这个问题?格茨我.eatCookie(); 最佳答案 你可以这样做:privateenumSpecialChars{COMMA(","),APOSTROPHE("'"),OPEN_PAREN("("),CLOSE_PAREN(")");privateStringvalue;privateSpecialChars(Stringval