我需要将一个枚举变量声明为类成员,并且需要像java bean一样为它定义一个setter和getter。像这样的东西 -
public class Vehicle {
private String id;
private String name;
enum color {
RED, GREEN, ANY;
}
// setter and getters
}
现在,我想将color属性设置为红色,绿色或任何来自其他类的颜色,并希望相应地做出决定。
答案 0 :(得分:14)
必须公开枚举才能让外界看到:
public class Vehicle {
private String id;
private String name;
public enum Color {
RED, GREEN, ANY;
};
private Color color;
public Color getColor(){
return color;
}
public void setColor(Color color){
this.color = color;
}
}
然后从包裹外面你可以做到:
vehicle.setColor(Vehicle.Color.GREEN);
如果您只需要在与Vehicle
相同的包中使用Vehicle.Color,则可以从public
声明中删除enum
。
答案 1 :(得分:2)
如果您想使用color
枚举,则必须比您所做的更广泛地分享其声明。最简单的可能是将public
放在车辆enum color
前面。
接下来,您需要声明枚举类型的字段。我建议你将枚举的名称从color
更改为Color
,因为它基本上都是一个类。然后,您可以在其他字段中声明一个字段:private Color color
。
要使用枚举,尤其是来自另一个类的常量,您需要知道枚举嵌套在Vehicle中。您需要限定所有名称,所以:
Vehicle.Color myColor = Vehicle.Color.RED;
Bakkal亲切地编写了代码来展示我所谈论的内容。详情请见他的回答!