2010-07-16 9 views
5

Je dois déclarer une variable enum en tant que membre de la classe et j'ai besoin de définir un setter et un getter pour cela comme un bean java. quelque chose comme ça -Déclarez une variable enum dans Java bean

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

Maintenant, je veux définir la propriété de couleur rouge, vert ou tout d'une autre classe et veulent prendre des décisions en conséquence.

+0

Ce n'est pas une question! :) –

Répondre

13

ENUM devra être rendu public pour être vu par le monde extérieur:

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

    } 

Ensuite, à l'extérieur du paquet que vous pouvez faire:

vehicle.setColor(Vehicle.Color.GREEN); 

si vous ne besoin d'utiliser Vehicle.Color dans le même paquet que Vehicle vous pouvez supprimer le public de la déclaration enum.

+0

Devinez vous êtes bon à l'utilisation enum pourriez-vous m'aider dans ce lien: http: //stackoverflow.com/q/14252822/1503130 – Prateek

2

Si vous voulez travailler avec votre color enum, vous devez partager sa déclaration plus largement que vous ne le faites. Le plus simple pourrait être de mettre public devant enum color dans le véhicule.

Ensuite, vous devez déclarer un champ du type enum. Je vous suggère de changer le nom de l'enum de color en Color, parce que c'est fondamentalement une classe de toute façon. Ensuite, vous pouvez déclarer un champ: private Color color parmi vos autres champs.

Pour utiliser l'énumération et en particulier ses constantes d'une autre classe, vous devez savoir que l'énumération est imbriquée dans Véhicule. Vous avez besoin de se qualifier tous les noms, donc:

Vehicle.Color myColor = Vehicle.Color.RED; 

Bakkal a écrit le code de bien vouloir faire preuve de beaucoup ce que je parlais. Voir sa réponse pour plus de détails!

+0

c'est un sien, ravi de vous rencontrer :) – bakkal

+2

Je n'étais pas tout à fait sûr de la photo et ne voulait pas vous offenser;) –