当前位置: 首页 > 编程笔记 >

我们如何在Java中将枚举类型与构造函数一起使用?

赵君植
2023-03-14
本文向大家介绍我们如何在Java中将枚举类型与构造函数一起使用?,包括了我们如何在Java中将枚举类型与构造函数一起使用?的使用技巧和注意事项,需要的朋友参考一下

枚举类型可以具有一个私有的构造函数,该构造函数可用于初始化实例字段。 

EnumDemo类演示了这一点。它具有带有四个常量的Food枚举类型:HAMBURGER,FRIES,HOTDOG和ARTICHOKE。请注意,括号后的每个常数值之后。这将调用该成员的构造函数以初始化该成员的价格字段。 

我们在main()方法的for循环中迭代Food值。在这种方法中,我们首先显示食物常量的名称。接下来,我们检查该食品的价格,并显示价格昂贵还是负担得起。在此之后,为了娱乐,我们演示了使用带有Food枚举类型的switch语句。

例:

public class EnumDemo {
   public enum Food {
      HAMBURGER(7), FRIES(2), HOTDOG(3), ARTICHOKE(4);
      Food(int price) {this.price = price;}
      private final int price;
      public int getPrice() {
         return price;
      }
}
public static void main(String[] args) {
   for (Food f : Food.values()) {
   System.out.print("Food: " + f + ", ");

      if (f.getPrice() >= 4) {
         System.out.print("Expensive, ");
      } else {
               System.out.print("Affordable, ");
   }
switch (f) {
      case HAMBURGER:
         System.out.println("Tasty");
      continue;
      case ARTICHOKE:
         System.out.println("Delicious");
      continue;
      default:
      System.out.println("OK");
    }
  }
 }
}

输出:

Food: HAMBURGER, Expensive, Tasty
Food: FRIES, Affordable, OK
Food: HOTDOG, Affordable, OK
Food: ARTICHOKE, Expensive, Delicious
 类似资料:
  • 我正在为即将到来的考试做一些修订,我对对象构造函数中枚举的使用有点困惑。

  • 问题内容: 更新: 感谢所有提供帮助的人-这个答案的答案在于我在更复杂的代码中没有注意到的内容以及对Java5协变量返回类型不了解的内容。 原始帖子: 今天早上我一直在玩一些东西。虽然我知道我 可以用 不同的方式解决整个问题,但我发现自己一直迷恋于弄清楚为什么它没有按我预期的那样工作。在花了一些时间阅读这些内容之后,我发现我离理解还很近,因此我将其作为一个问题来看看我是否只是愚蠢,或者是否真的有我

  • 我分配给类的属性是: 我需要设置ISSOLD,并敦促其设置为false。这就是我创建默认构造函数的原因。但是我使用Builder()来设置类字段,并且在某个地方使用getter/setter来设置属性。 我的要求是将isPurpressed/IsSoldOut设置为True/False,但不能为NULL。 请指导我如何才能做到这一点。

  • 我不确定我是否过度工程化了,但我正在考虑创建一个枚举,其中包含一个枚举列表作为它的值,从中我可以得到它的值。 我无法确定枚举的类型,以便正确地将值数组筛选到正确的枚举。例如,我可以用轻松地获得US枚举。我遇到的困难是从该数组中获得正确的值。我尝试比较名称,

  • 问题内容: 这来自有效的Java: 请注意,操作常量是从创建常量之后运行的静态块放入stringToEnum映射中的。试图使每个常量从其自己的构造函数中放入映射中将导致编译错误。这是一件好事,因为如果合法,它将导致NullPointerException。除编译时常量字段外,不允许枚举构造函数访问枚举的静态字段。此限制是必需的,因为在构造函数运行时尚未初始化这些静态字段。 我的问题是关于这条线的:

  • 想改进这个问题吗?更新问题,以便可以通过编辑这篇文章来回答事实和引文。 我确实使用Spring和Lombok 没有原型bean,我们必须传递目标类所需的依赖项 我们如何将bean标记为原型并正确处理依赖bean和构造函数参数? 选项1 -没有原型beans 选项 2 - 原型豆