java - 如何在枚举器数据字段上获取用户输入?
问题描述
我正在做一个项目,用户输入他们想要的甜甜圈类型,我使用该条目从我的类甜甜圈创建一个对象。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();
解决方案
您可以Size size = Size.valueOf(input.next());
用于字符串输入。
推荐阅读
- javascript - 如何在 React.js 中使用按钮触发动画?
- google-apps-script - DriveApp.getFileById() 的奇怪行为
- javascript - 选项卡应用程序 - Angular 6
- c++ - C++中字符串类型的二维数组;
- python - python odeint 给出了奇怪的结果
- java - 使用 Arrays.asList 方法使用 Stream 打印 int Array
- ios - 自定义 UICollectionViewLayout 基于 AutoLayout 的自定尺寸单元格
- c# - 有没有一种捷径可以从每列中获取任何非空值并将它们组合到 C# 中?
- firebase - Firebase 个人资料图片在页面重新加载时消失
- autodesk-forge - Autodesk forge:在元素上移动枢轴/3D 操纵器(切割工具)