【问题标题】:Declare enum variable in Java bean在 Java bean 中声明枚举变量
【发布时间】:2011-11-02 01:14:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: java


    【解决方案1】:

    枚举必须公开才能被外界看到:

    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,则可以从 enum 声明中删除 public

    【讨论】:

    【解决方案2】:

    如果您想使用您的 color 枚举,您必须比您现在更广泛地分享它的声明。最简单的可能是将public 放在Vehicle 中的enum color 前面。

    接下来,您需要声明一个枚举类型的字段。我建议您将枚举的名称从color 更改为Color,因为无论如何它基本上是一个类。然后您可以在其他字段中声明一个字段:private Color color

    要使用枚举,尤其是另一个类中的常量,您需要注意枚举嵌套在 Vehicle 中。您需要限定所有名称,因此:

    Vehicle.Color myColor = Vehicle.Color.RED;
    

    Bakkal 友好地编写了代码来演示我所说的大部分内容。详情见他的回答!

    【讨论】:

    • 这是他的,很高兴认识你:)
    • 从照片中我不太确定,也不想冒犯你 ;)
    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多