Tag: enums

在switch-case中使用枚举值的字符串表示

为什么在交换机情况下不能将枚举值用作字符串? (或者这有什么问题:) String argument; switch (argument) { case MyEnum.VALUE1.toString(): // Isn’t this equal to “VALUE1” ? // something break; case MyEnum.VALUE2.toString(): // something else break;

使用枚举的策略模式。 在Java中需要一个简单的例子

我正在尝试理解java中的策略模式和枚举。 我已经搜索了这篇文章并找到了一些关于这个主题的文章,但是大多数文章看起来都太复杂了。 任何人都可以提供一个简单的示例或其他链接,使用java在外行术语中使用枚举来演示策略模式吗? 提前谢谢你。

无法访问枚举初始化程序中的静态字段

在这段代码中我得到一个编译器错误,请参阅注释: public enum Type { CHANGESET(“changeset”), NEW_TICKET(“newticket”), TICKET_CHANGED(“editedticket”), CLOSED_TICKET(“closedticket”); private static final Map tracNameMap = new HashMap(); private Type(String name) { tracNameMap.put(name, this); // cannot refer to static field within an initializer } public static Type getByTracName(String tn) { return tracNameMap.get(tracNameMap); } } 有没有办法让这项工作,从其中一个字段的Map获取枚举值?

映射值是应该以常量还是枚举声明?

我看到这遍布整个代码库: @RequestMapping(value = “myValue”) 我更喜欢使用这样的东西: @RequestMapping(value = Constants.myValue) 它似乎使用@RequestMapping的实际String值而不是常量来破坏DRY。 但这是一个很好的代码实践吗? 我应该使用枚举吗? 我可能需要在代码库中的其他地方使用Constants.myValue 。

java如何确保每个JVM只有一个枚举实例

Java如何在内部确保每个JVM只存在一个ENUM实例? 它是在应用程序启动时创建的,当多个线程访问它时,它会返回启动时创建的对象吗? 或者它是否实现了类似于单例模式的某种双重同步,这样即使多个线程访问它,也只会创建一个istance?

迭代JSP中的Enum常量

我有一个像这样的枚举 package com.example; public enum CoverageEnum { COUNTRY, REGIONAL, COUNTY } 我想在JSP中迭代这些常量而不使用scriptlet代码。 我知道我可以用这样的scriptlet代码做到这一点: <c:forEach var="type" items="”> ${type} 但是如果没有scriptlet,我可以实现同样的目标吗? 干杯,唐

Hibernateexception:枚举类的未知名称值

尝试从DB中检索记录时,我收到枚举类的未知名称值。 使用JSF 2.0,JPA。 我的数据库中的可能值是’F’或’J’ 枚举: public enum TipoPessoa { FISICA (“F”, “Física”), JURIDICA (“J”, “Jurídica”); private final String id; private final String descricao; private TipoPessoa(String id, String descricao){ this.id = id; this.descricao = descricao; } public String getId() { return id; } public String getDescricao(){ return descricao; } } 实体: @Column(nullable=false, length=1) private TipoPessoa tipoPessoa; […]

为什么此代码中的枚举开关需要默认值?

通常,switch语句中不需要default。 但是,在以下情况下,代码只有在取消注释默认语句时才能成功编译。 任何人都可以解释原因吗? public enum XYZ {A,B}; public static String testSwitch(XYZ xyz) { switch(xyz) { case A: return “A”; case B: //default: return “B”; } }

Spring @RequestBody和Enum值

我有这个枚举 public enum Reos { VALUE1(“A”),VALUE2(“B”); private String text; Reos(String text){this.text = text;} public String getText(){return this.text;} public static Reos fromText(String text){ for(Reos r : Reos.values()){ if(r.getText().equals(text)){ return r; } } throw new IllegalArgumentException(); } } 还有一个名为Review的类,这个类包含enum Reos类型的属性。 public class Review implements Serializable{ private Integer id; private Reos reos; public Integer getId() {return id;} public […]

使用枚举序数是一种好习惯吗?

我有枚举: public enum Persons { CHILD, PARENT, GRANDPARENT; } 使用ordinal()方法检查枚举成员之间的“层次结构”是否有任何问题? 我的意思是 – 使用它除了冗长之外是否有任何缺点,当有人可能在将来意外改变时。 或者做这样的事情会更好: public enum Persons { CHILD(0), PARENT(1), GRANDPARENT(2); private Integer hierarchy; private Persons(final Integer hierarchy) { this.hierarchy = hierarchy; } public Integer getHierarchy() { return hierarchy; } }