在Java bean中声明枚举变量

Sau*_*abh 6 java

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

public class Vehicle {
 private String id;
 private String name;
 enum color {
   RED, GREEN, ANY;
 }
 // setter and getters
} 
Run Code Online (Sandbox Code Playgroud)

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

bak*_*kal 15

enum必须公开以供外界看到:

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;
     }   

    } 
Run Code Online (Sandbox Code Playgroud)

然后从包外面你可以做:

vehicle.setColor(Vehicle.Color.GREEN);
Run Code Online (Sandbox Code Playgroud)

如果你只需要在同一个包中使用Vehicle.Color,Vehicle你可以publicenum声明中删除它.