首页 > 解决方案 > 如何将枚举的一个变量中的所有元素加载到数组中?

问题描述

我正在尝试使用另一个类中的方法将一个枚举变量的元素放入一个数组中(我希望我解释得对,请看代码)

我已经尝试过各种事情,for 循环,有和没有构造函数。

public enum coffeetypes {
    COFFEE1 ("AMERICANO", "LATTE", "CAPPUCCINO"),
    COFFEE2 ("ESPRESSO", "RISTRETTO", "AMERICANO"), ;   
}

我想得到结果

"AMERICANO", "LATTE", "CAPPUCCINO" 
or "ESPRESSO", "RISTRETTO", "AMERICANO"
not "AMERICANO" "ESPRESSO"

标签: javaarraysenums

解决方案


您的枚举类型甚至无法编译,因为它缺少构造函数和私有字段。添加时,很容易添加 getElements() 方法,以便您可以从枚举外部访问列表:

import java.util.Arrays;
public class Coffee {

    public enum CoffeeTypes {
        COFFEE1("AMERICANO", "LATTE", "CAPPUCCINO"), 
        COFFEE2("ESPRESSO", "RISTRETTO", "AMERICANO");
        String[] elements;
        private CoffeeTypes(String... elements)
        {
            this.elements=elements;
        }
        public String[] getElements()
        {
            return elements;
        }
    }

    public static void main(String[] args) {
        CoffeeTypes myinstance=CoffeeTypes.COFFEE1;
        System.out.println(Arrays.asList(myinstance.getElements()));
    }

}

Arrays.asList 仅用于以可读的方式打印数组。


推荐阅读