Tag: enums

我可以在枚举上使用Spring的@Component吗?

我正在使用Spring 3.0.x并遵循枚举单例模式来实现我的一个实现。 public enum Person implements Nameable { INSTANCE; public String getName(){ // return name somehow (Having a variable but omitted for brevity) } } 最近我们开始通过Spring收集这些类型,所以我需要将@Component添加到我的类中。 @Component public enum Person implements Nameable { INSTANCE; public String getName(){ // return name somehow (Having a variable but omitted for brevity) } } 和收集方法是 @Autowired public void collectNameables(List […]

创建一个Spring枚举bean并传递方法调用的值

我有这个Singleton: public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } } 我知道如何在spring中创建枚举bean: INSTANCE 如何将INSTANCE.getAge()返回的int传递给另一个bean构造函数?

实现相同接口的枚举上的Java切换

我有一个小组项目,我们被迫使用提供的接口和枚举。 想象一下如下情况: // marker interface interface Request{} // marker interface interface Response{} enum TypeAction implements Request{ TYPE1, TYPE2, TYPE3 } enum OtherTypeAction implements Request{ OTHERTYPE1, OTHERTYPE2 } 在另一个类中,我有一个请求列表,如下所示: List req = new LinkedList()我想做的是:做一个如下所示的开关: switch(a_request){ CASE TYPE1: …. CASE TYPE2: …. CASE TYPE3: …. CASE TYPE2: …. CASE OTHERTYPE1: …. CASE OTHERTYPE2: …. } 我怎么能设法做到这一点? 重要说明:我无法在接口和枚举中添加方法,但我可以创建实现上面可以看到的接口的新枚举。 […]

Struts 2迭代枚举

在Struts 2中是否可以使用标记来迭代枚举? 现在我正在使用String列表,但是可以直接使用枚举吗? 提前致谢。

如何在开关盒中使用枚举

我正在尝试检查我的VO中设置了哪些值。 以下是我的clasess。 我得到“ 合格的案例标签MyEnum.UserType.DOCTORS必须用不合格的枚举常量DOCTORS替换 ” 请帮我识别我在这里做错了什么。 MyEnum.java public MyEnum{ private UserType userType; public UserType getUserType(){ return userType; } public void setUserType(UserType userType){ this.userType = userType; } public static enum UserType{ DOCTORS(“D”), PATIENT(“P”), STAFF(“S”); } } EnumTest.java public EnumTest { ….. public void onGoBack(MyEnum myEnum) { switch(myEnum.getUserType()) { case UserType.DOCTORS: // this shows “The qualified case […]

为什么“final static int”可以用作switch的case常量而不是“final static ”

为什么这个int开关有效: public class Foo { private final static int ONE = 1; private final static int TWO = 2; public static void main(String[] args) { int value = 1; switch (value) { case ONE: break; case TWO: break; } } } 虽然这个枚举开关不是: import java.lang.annotation.RetentionPolicy; public class Foo { private final static RetentionPolicy RT = RetentionPolicy.RUNTIME; […]

jackson – 反序列化一个基础枚举

是否可以反序列化具有一个索引的枚举? enum Status { Active, Inactive } {status:1}表示Status.Active,但Jackson使其成为Status.Inactive 🙁

将Java Generics与Enums一起使用

更新:感谢所有帮助过的人 – 这个问题的答案在于我在更复杂的代码中没有注意到的内容以及我对Java5协变返回类型的不了解。 原帖: 今天早上我一直在玩弄东西。 虽然我知道我可以用不同的方式解决这个问题,但我发现自己已经痴迷于弄清楚为什么它不像我期望的那样工作。 在花了一些时间阅读这篇文章之后,我发现自己并没有更接近理解,所以我提出这个问题,看看我是不是真的很蠢,或者是否有一些我不明白的事情发生在这里。 我创建了一个自定义事件层次结构,如下所示 public abstract class AbstractEvent<S, T extends Enum> { private S src; private T id; public AbstractEvent(S src, T id) { this.src = src; this.id = id; } public S getSource() { return src; } public T getId() { return id; } } 具体实现如下: public class MyEvent extends […]

Enum.valueOf(String)方法来自哪里?

在Java SE 7中(最有可能在以前的版本中),Enum类声明如下: public abstract class Enum<E extends Enum> extends Object implements Comparable, Serializable Enum类有一个带有此签名的静态方法: T static<T extends Enum> valueOf(Class enumType, String name) 但是没有静态方法:在Enum类中定义的valueOf(String)也不在Enum所属的层次结构中向上。 问题是valueOf(String)来自哪里? 它是语言的一个特性,即编译器内置的function吗?

javadoc 1.5和1.6中缺少enum.valueOf(String name)

这可能是一个愚蠢的问题,但我使用的方法是enum.valueOf(String name) 。 没问题,除了当我检查javadoc以了解更多有关此方法的信息时,我找不到它。 valueOf(Class enumType, String name)有javadoc,但enum.valueOf(String name) (这表明不存在具有此签名的方法 – 但显然它确实存在)。 我在这里遗漏了什么,或者这是对API的javadoc的疏忽? 谢谢