首页 > 解决方案 > 如何在枚举器数据字段上获取用户输入?

问题描述

我正在做一个项目,用户输入他们想要的甜甜圈类型,我使用该条目从我的类甜甜圈创建一个对象。Donut 类的对象将具有 Enumerator 的参数,该 Enumerator 被制成其自己的类。例如,结冰的条目将被声明为结冰数据字段,而不是标准数据类型。这是 4 个类的条目,它们包含给定 Donut 对象的不同方面。

    //COPIES OF THE ENUMERATOR CLASSES

    public enum Size{
        REGULAR, LARGE, HOLE
    }

    public enum Flavor {
        OLD_FASHIONED, VANILLA, CHOCOLATE, APPLE
    }

    public enum Icing {
        NONE, SUGAR_GLAZE, CHOCOLATE, STRAWBERRY
    }

    public enum Topping {
        NONE, SPRINKLES, NUTS, POWDERED_SUGAR, CEREAL, CANDY
    }

要创建不是默认的甜甜圈类,我需要用户能够为甜甜圈输入大小类型的大小。我尝试使用 input.nextSize() 但这没有用。有没有更好的方法来输入这种枚举?这是 Donut 类的构造函数。除了 size 之外的所有东西都是用 setter 方法编辑的。

public Donut(Size size) {
        this.size = size;
        flavor = Flavor.OLD_FASHIONED;
        icing = Icing.NONE;
        topping = Topping.NONE;
    }

这是用户提示我必须接收尺寸输入才能制作一个甜甜圈对象:

        System.out.println("What size donut would you like? ");
            Size size = input.nextSize();

标签: javaenumsenumeration

解决方案


您可以Size size = Size.valueOf(input.next());用于字符串输入。


推荐阅读