2010-07-16 12 views
5

Necesito declarar una variable enum como miembro de la clase y necesito definir un setter y getter para eso como un bean Java. algo como esto -Declarar la variable enum en Java bean

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

Ahora, quiero establecer la propiedad de color como el rojo, verde o cualquier otra clase de algunos y quieren tomar decisiones en consecuencia.

+0

¡Esa no es una pregunta! :) –

Respuesta

13

La enumeración tendrá que ser hecho público para ser visto por el mundo exterior:

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

    } 

A continuación, desde el exterior del paquete que puede hacer:

vehicle.setColor(Vehicle.Color.GREEN); 

si solo necesita usar Vehicle.Color dentro del mismo paquete que Vehicle, puede eliminar el public de la declaración enum.

+0

Supongo que eres bueno en el uso de enum ¿podría ayudarme en este enlace: http: //stackoverflow.com/q/14252822/1503130 – Prateek

2

Si desea trabajar con su enumeración color, tiene que compartir su declaración más ampliamente de lo que está haciendo. Lo más simple podría ser poner public delante de enum color en el vehículo.

A continuación, debe declarar un campo del tipo de enumeración. Le sugiero que cambie el nombre de la enumeración de color a Color, porque es básicamente una clase de todos modos. Entonces puede declarar un campo: private Color color entre con sus otros campos.

Para usar la enumeración y especialmente sus constantes de otra clase, debe tener en cuenta que la enumeración está anidada en el Vehículo. Que necesita para calificar todos los nombres, por lo que:

Vehicle.Color myColor = Vehicle.Color.RED; 

Bakkal ha código para demostrar mucho de lo que estaba hablando amablemente por escrito. Ver su respuesta para más detalles!

+0

es un suyo, un placer conocerte :) – bakkal

+2

No estaba seguro de la foto y no quería ofenderte;) –