在Java bean中声明枚举变量

时间:2010-07-16 17:47:20

标签: java

我需要将一个枚举变量声明为类成员,并且需要像java bean一样为它定义一个setter和getter。像这样的东西 -

public class Vehicle {
 private String id;
 private String name;
 enum color {
   RED, GREEN, ANY;
 }
 // setter and getters
} 

现在,我想将color属性设置为红色,绿色或任何来自其他类的颜色,并希望相应地做出决定。

2 个答案:

答案 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亲切地编写了代码来展示我所谈论的内容。详情请见他的回答!