当前位置: 首页 > 面试题库 >

使用Spring IoC设置枚举值

司寇灵均
2023-03-14
问题内容

有没有一种方法可以在构造时通过Spring IoC设置此类枚举值?

我想做的是在类加载时注入在下面的代码片段中硬编码的值:

public enum Car
{
        NANO ("Very Cheap", "India"),
        MERCEDES ("Expensive", "Germany"),
        FERRARI ("Very Expensive", "Italy");

        public final String cost;
        public final String madeIn;

        Car(String cost, String madeIn)
        {
                this.cost= cost;
                this.madeIn= madeIn;
        }

}

假设必须将应用程序部署在Nanos“几乎免费”的德国或法拉利“负担不起”的印度。在这两个国家中,只有三辆汽车(确定性集合),不多不少,因此是一个枚举,但它们的“内部”值可能不同。因此,这是不可变内容的上下文
初始化 的情况。


问题答案:

您是要设置enum自己吗?

我认为那是不可能的。您不能实例化枚举,因为它们具有static本质。因此,我认为Spring IoC也无法 创建 enums

另一方面,如果您需要使用进行初始化,enum请查阅Spring
IoC章节
。(搜索枚举)有一个简单的示例可以使用。



 类似资料:
  • 是否可以使用 Literal 来实现?

  • 使用上面的代码,我可以根据枚举值获取字段的值。现在如何设置字段的基于值例如:如果被选中,那么我需要设置到输入值。

  • 使用 use 声明,这样就不必手动加上作用域了: // 隐藏未使用代码警告的属性。 #![allow(dead_code)] enum Status { Rich, Poor, } enum Work { Civilian, Soldier, } fn main() { // 明确地 `use` 各个名称使他们直接可用而不需要手动加上作用域。 use

  • 当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 ... NOV = 11 DEC = 12 好处是简单,缺点是类型是int,并且仍然是变量。 更好的方法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。Python提供了Enum类来实现这个功能: from enum import Enum

  • 问题内容: 我很清楚Java中枚举的高级用法。对我来说,许多区别于普通班和告诉他们需要的观点也很清楚。 谁能举一些带有高级枚举示例代码的实际示例?可以清楚地阐述一下 我们应该避免使用类,而应该使用枚举 。 请不要混淆。我不是在问如何使用枚举或枚举的用途是什么。关于此有很多问题和答案。我正在寻找一些实时/实时/实际的例子,我们应该避免任何其他数据类型或类。 问题答案: 试试这个例子: 用法:

  • 实际开发中,我们离不开定义常量,当我们需要定义常量时,其中一个办法是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 ... NOV = 11 DEC = 12 当然这样做简单快捷,缺点是类型是 int ,并且仍然是变量。 那有没有什么好的方法呢? 这时候我们定义一个 class 类型,每个常量都是 class 里面唯一的实例。 正好 Python 提供了 E