我正在尝试使用spring injection注入到枚举中。像这样:
public enum Car {
HONDA("Honda", "hondas") {
@Inject
Carparts carparts;
@Override
public List<Carpart> getCarparts() {
return carparts.getCarpartsListings();
}
};
//more logic here
}
我的Carparts bean在configuration类中定义如下:
@Bean
@Singleton
public Carparts geCarparts() {
return new Carparts();
}
但不管我得到的是车体注射的空值。任何帮助都将不胜感激。
您需要使用一个将是Spring组件的内部静态类创建一个变通方法,注入它并为整个car enumset
设置carparts
。
public enum Car {
private Carparts carparts;
@Component
public static class CarPartsInjector {
@Inject
private Carparts carparts;
@PostConstruct
public void construct() {
for (Car car: EnumSet.allOf(Car.class))
car.setCarparts(carparts);
}
private void setCarparts(Carparts carparts) {
this.carparts = carparts;
}
//...
}
总的来说,我认为这不是一个妥善的解决办法。
这里的问题是数据模型。
car
不应该是枚举。它应该是一个以carparts
、enum
作为类型的类,如cartype
或manufacturertype
。
问题内容: 我正在使用Spring 3.0.x,并按照枚举单例模式进行实现。 最近,我们开始通过Spring收集这些类型,因此我需要在类中添加@Component。 收集方法是 完成此操作后,我观察到失败,原因是Spring无法初始化枚举类(这是可以理解的)。 我的问题是- 是否有其他方法可以将枚举类标记为bean? 还是我需要更改实施方式? 问题答案: 如果确实需要使用基于枚举的单例(尽管默认情
从这个问题,有可能注入map与枚举? 例如,我有枚举: 我有一些与实现的接口: 但这样的注入不起作用: 我想自动注入。如何修复它,在spring框架端生成这样的代码?
问题内容: 是否可以在Java枚举中使用,还是需要使用?在我的测试中,它始终有效,但是我不确定是否可以保证。特别是,在枚举上没有方法,因此我不知道是否有可能获得一个枚举,该枚举将返回不同于的值。 例如,这样可以吗: 还是我需要这样写: 问题答案: 仅需2美分:这是Sun发布的Enum.java的代码,并且是JDK的一部分:
问题内容: 这是我要完成的工作,我有一个包含一些值的枚举的类,我想对该类进行子类化并向该枚举添加更多值。这是一个不好的例子,但是: 因此HexDigits.Digit包含所有十六进制数字。那可能吗? 问题答案: 不,这不可能。最好的办法是使两个枚举实现和接口,然后使用该接口代替枚举。所以:
问题内容: 我正在阅读Swift浏览文档,并且遇到了问题。这是代码: 该功能将无法正常工作,我想知道是否有一种方法可以更改枚举的关联值,以及如何更改? 问题答案: 最直接的问题是,当您应该使用声明不可变变量(用声明)时,您尝试更改其值。但是,由于您的变量包含关联值的副本,因此,这不会解决此特定问题,但是通常这是您需要注意的。 如果要解决此问题,则需要将该函数声明为muting函数,并根据具体情况将
问题内容: 我正在重新编写一些代码,并且已经确定了重新创建类的方式,因为存在固定数量的工作表,所以我将它们创建为枚举。这是基于构建器模式与伸缩构建器的可读性来做出的决定。 我获取的代码抓取了一些.xls文件,添加了标头(并从其他.xls文件中读取了一些标头),甚至还有一些子表。然后,它以特定方式将各种工作表合并在一起,以在主要excel工作簿上制作选项卡。我的问题是某些工作簿选项卡采用不同数量的工