如何使用Spring在枚举构造函数中注入参数?

Jul*_*lia 5 java enums spring

我有这样的枚举:

public enum SomeEnum {
    ONE (new MyClass()),
    TWO (new MyClass());

    private final MyClass instance;

    private SomeEnum(MyClass instance) {
        this.instance = instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何从Spring上下文中将MyClass实例传递给枚举构造函数?它甚至可能吗?

我需要它,因为我在创建它时将一些参数从config(.properties文件)传递到MyClass实例.现在我在使用bean的xml文件中执行它,也许还有另一种方法?

Sot*_*lis 5

你不能做这个.

在这篇关于枚举类型的官方Java教程中,它说明了这一点

注意:枚举类型的构造函数必须是包私有或私有访问.它会自动创建在枚举主体开头定义的常量.您不能自己调用​​枚举构造函数.

由于Enum应该是一组常量,因此能够创建新的常量是没有意义的,因此构造函数即使通过反射也不可用.