Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将枚举的一个变量中的所有元素加载到数组中?_Java_Arrays_Enums - Fatal编程技术网

Java 如何将枚举的一个变量中的所有元素加载到数组中?

Java 如何将枚举的一个变量中的所有元素加载到数组中?,java,arrays,enums,Java,Arrays,Enums,我试图使用另一个类中的方法将一个enum变量的元素放入数组中(我希望我的解释是正确的,请看代码) 我尝试过各种各样的方法,比如循环,有构造函数和没有构造函数 public enum coffeetypes { COFFEE1 ("AMERICANO", "LATTE", "CAPPUCCINO"), COFFEE2 ("ESPRESSO", "RISTRETTO", "AMERICANO"), ; } 我想知道结果 "AMERICANO", "LATTE", "CAPPU

我试图使用另一个类中的方法将一个enum变量的元素放入数组中(我希望我的解释是正确的,请看代码)

我尝试过各种各样的方法,比如循环,有构造函数和没有构造函数

public enum coffeetypes {
    COFFEE1 ("AMERICANO", "LATTE", "CAPPUCCINO"),
    COFFEE2 ("ESPRESSO", "RISTRETTO", "AMERICANO"), ;   
}
我想知道结果

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

枚举类型甚至没有编译,因为它缺少构造函数和私有字段。 添加此项时,很容易添加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仅用于以可读的方式打印数组。

如果每个属性都有一个字段

import java.util.Arrays;
import java.util.List;

class Coffee {
    public static void main(String[] args) {
        System.out.println(CoffeeTypes.COFFEE1.getAttributes());
    }

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

        private String n1;
        private String n2;
        private String n3;

        CoffeeTypes(String n1, String n2, String n3) {
            this.n1 = n1;
            this.n2 = n2;
            this.n3 = n3;
        }

        public List<String> getAttributes() {
            return Arrays.asList(n1, n2, n3);
        }
    }
}

是的,我用构造函数尝试过,但除了生成三个单独的函数,每个函数返回一个元素之外,我什么也做不了。这也意味着每个元素需要有相同数量的元素,否则会有一些错误。谢谢你的回复,看起来应该很有效。@c0如果你是对的话。我重命名了这个类,但忘了重命名构造函数。
[AMERICANO, LATTE, CAPPUCCINO]