我有一个名为Car
的类,此类具有以下属性:id,name,price,color和size。当我创建一个对象时,对于颜色和大小,我想要一个列表来从中选择属性值。我不希望用户写“黑”或“小”,我想在应用程序的某处找到它们。
Car c1 = new Car(1, "Super Car", 152.5, "black", "small");
有人可以帮我吗?
答案 0 :(得分:0)
然后,您应该拥有可供用户选择的可能值列表。下面是一个颜色示例(只是一个简单的示例,没有深入到每个场景的Java构造):
List<String> color = new ArrayList<String>();
color.add("black");
color.add("white");
// etc
Car c1 = new Car(1, "SuperCar", 152.5, color.get(userSelectedOptionIndex), "smal");
此处,userSelectedOptionIndex
应该是用户在GUI中选择的选项的索引。
答案 1 :(得分:0)
1)您可以使用类通过简单的字符串来保存常量:
public final class Constants {
private Constants() {
// restrict instantiation
}
public static final String COLOR_BLACK = "black";
public static final String COLOR_WHITE = "white";
public static final String SIZE_SMALL = "small";
public static final String SIZE_LARGE = "large";
}
用法:
Car c1 = new Car(1, "Super Car", 152.5, Constants.COLOR_BLACK, Constants.SIZE_SMALL)
2)另一种方法是在Constants类中使用枚举:
public final class Constants {
private Constants() {
// restrict instantiation
}
public static enum Color { White, Black };
public static enum Size { Small, Large };
}
用法:
Car c1 = new Car(1, "Super Car", 152.5, Constants.Color.White, Constants.Size.Small)
3)更好的方法(更多oop批准)是分别定义枚举并完全丢弃常量类
public enum Color {
White,
Black
}
public enum Size {
Small,
Large
}
用法:
Car c1 = new Car(1, "Super Car", 152.5, Color.White, Size.Small)
如果您有一个GUI元素,用户应该从中选择valuse,可以创建一个包含这些枚举值的数组或List,并填充您的GUI元素:
JavaFx 8示例:
Color[] values = Color.values();
ComboBox<Color> comboBox = new ComboBox<>();
comboBox.getItems().addAll(values);
以后获得选定的值:
Color selectedColor = comboBox.getValue();