2010-07-16 20 views
5

Devo dichiarare una variabile enum come membro della classe e ho bisogno di definire un setter e un getter per quello come un java bean. qualcosa di simile -Dichiarare la variabile enum nel bean Java

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

Ora, voglio impostare la proprietà colore come rosso, verde o qualsiasi da qualche altra classe e vuole prendere decisioni di conseguenza.

+0

Questa non è una domanda! :) –

risposta

13

L'enum dovrà essere reso pubblico per essere visto dal mondo esterno:

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

    } 

Poi da fuori pacchetto che si può fare:

vehicle.setColor(Vehicle.Color.GREEN); 

se solo è necessario utilizzare Vehicle.Color all'interno dello stesso pacchetto come Vehicle è possibile rimuovere il public dalla dichiarazione enum.

+0

Indovina che sei bravo a usare enum potresti aiutarmi in questo link: http: //stackoverflow.com/q/14252822/1503130 – Prateek

2

Se si desidera lavorare con l'enumerazione color, è necessario condividere la sua dichiarazione più ampiamente di quanto si stia facendo. Il più semplice potrebbe essere quello di mettere public di fronte a enum color in Veicolo.

Successivamente, è necessario dichiarare un campo del tipo di enum. Ti suggerisco di cambiare il nome dell'enum da color a Color, perché in fondo è comunque una classe. Quindi puoi dichiarare un campo: private Color color tra gli altri tuoi campi.

Per utilizzare l'enumerazione e in particolare le sue costanti da un'altra classe, è necessario essere consapevoli che l'enum è nidificato in Veicolo. È necessario qualificare tutti i nomi, in modo da:

Vehicle.Color myColor = Vehicle.Color.RED; 

Bakkal è il codice per dimostrare molto di quello che stavo parlando gentilmente scritta. Vedi la sua risposta per i dettagli!

+0

è un suo, piacere di conoscerti :) – bakkal

+2

Non ero abbastanza sicuro da la foto e non volevo offenderti;) –

Problemi correlati