我可以在这种情况下使用枚举吗?

Can I use Enums in this scenario?

假设有一个 Flower 摘要 class,它可以来自 SUMMER、SPRING 或 ALL_SEASONS 类型。现在像紫罗兰这样的花可以是夏季或 SPRING 季节之一。我如何在 Java 中表示它?我首先尝试使用枚举来实现它,但此时卡住了。

你的需求是实现一个有季节的花 class, 我实现了一个解决方案,不是最好的,但它揭示了基本的 OOP 继承机制和枚举,希望它能帮助你

首先,季节枚举

 public enum Season{
        SUMMER, SPRING, WINTER, AUTUMN;

        public static List<Season> allSeason(){
            return Arrays.asList(values());
        }
    }

接下来是摘要class花

public abstract class Flower {
    abstract List<Season> seasons();
}

然后是两个 class 扩展 Flower 并且必须定义季节行为的元素

class Poppy extends Flower{

    @Override
    List<Season> seasons() {
        return Arrays.asList(Season.SPRING, Season.SUMMER);
    }
}

class Anthurium extends Flower{

    @Override
    List<Season> seasons() {
        return Season.allSeason();
    }
}

根据您 post 的要求, 你没有三个季节的要求。 相反,您需要 "flowering seasons"。 "flowering seasons" 的列表似乎是 SUMMER, SPRING, SUMMER_AND_SPRING, ANY_SEASON.

考虑以下因素:

  1. 了解您的要求。
  2. 构建符合要求的解决方案。

根据您的 post, 你似乎以相反的方式执行了这些步骤 (构建解决方案然后审查需求)。