java枚举注释_java – 是否可以使用枚举通过注释映射Spr...

我正在使用Spring 4,我有一个枚举声明…

public static enum MY_ENUMS {

A(1, "enum1"),

B(2, "enum2");

private final int key;

private final String name;

MY_ENUMS(int key, String name) {

this.key = key;

this.name = name;

}

public String getName() {

return this.name;

}

public int getIndex() {

return this.key;

}

}

然后,从我的组件我试图做…

// @Named is the equivalent of @Component for this use case

// Making name public and trying this also does not work:

// @Named(MY_ENUMS.A.name)

@Named(MY_ENUMS.A.getName())

public class ServiceImplA implements IService {

@Override

public Object interfaceMethod() {

// Some code specific to ServiceImplA here....

}

}

这不构建,我知道为什么这不构建.基本上,MY_ENUMS.A.getName()在编译器中看起来不是常量,这意味着它不能在这里使用.但是枚举的意义在于它们允许您以一种有用的方式声明常量.那么,话虽如此,是否有一种方法可以通过引用枚举中的值来指定组件的名称?

我认为这应该是可能的,因为枚举是常量值的特殊情况/实现,但我想不出一种方法来解决Spring(或者可能是Java)期望注释的值是直线常数的方法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值