如何使用枚举没有字段的构造函数?

时间:2017-02-12 15:14:09

标签: java constructor enums

我不知道如何添加到数组枚举。我使用enum及其作品的字段构建了构造函数,但我不知道如何在没有字段的构造函数中创建它。我希望你明白我在想什么。在我的代码中,我评论我认为我有问题的地方。 我有:

public enum Components {
    WIFI, BLUETOOTH, CAMERA, SSD
}

public Laptop(){
    System.out.println("name of producer:");
    String producername = Main.sc.nextLine();
    System.out.println("name of model:");
    String modelname = Main.sc.nextLine();
    System.out.println("ram:");
    int ram = Main.sc.nextInt();
    System.out.println("cpu:");
    String cpu = Main.sc.nextLine();
    cpu = Main.sc.nextLine();
    System.out.println("components:");
    System.out.println("how many components do you want to add?");
    int z = Main.sc.nextInt();
    Components[] com = new Components[z];
    for(int i=0; i<com.length;i++){
        com[i] = //<-- how to add enum in array?
    }

    setProducerName(producername);
    setModelName(modelname);
    setRam(ram);
    setCpu(cpu);
    setComponents(com);
}

我的构造函数使用字段就是这样,它可以工作。

    public Laptop(String ProducerName, String ModelName, int Ram, String Cpu, Components... components) {
    super();
    this.ProducerName= ProducerName;
    this.ModelName= ModelName;
    this.Ram= Ram;
    this.Cpu= Cpu;
    this.components= new Components[components.length];
    this.components= Arrays.copyOf(components, components.length);
}

请帮忙。

2 个答案:

答案 0 :(得分:1)

您可以按名称获取pandas.nlargest(4, "Age")值。

enum

答案 1 :(得分:0)

我不是100%清楚你要问的是什么,但你可以从enum本身获得一个充满你的枚举常量的数组:Components.values()将返回一个所有的数组枚举常数。它基本上会回归:

new Components[]{Components.WIFI, Components.BLUETOOTH, 
    Components.CAMERA, Components.SSD}

侧面建议:不要在您的Laptop构造函数中使用Scanner,事实上,从该类的所有构造函数和实例方法中获取所有用户界面代码。所有用户界面代码都属于其他地方。