2010-07-16 53 views
5

Tôi cần khai báo một biến enum là một thành viên của lớp và cần phải định nghĩa một setter và getter cho nó giống như một bean java. một cái gì đó như thế này -Khai báo biến enum trong Java bean

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

Bây giờ, tôi muốn đặt thuộc tính màu là màu đỏ, xanh lá cây hoặc từ một số lớp khác và muốn đưa ra quyết định cho phù hợp.

+0

Đó không phải là một câu hỏi! :) –

Trả lời

13

Các enum sẽ phải được công bố công khai để được nhìn thấy bởi thế giới bên ngoài:

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

    } 

Sau đó từ bên ngoài gói bạn có thể làm:

vehicle.setColor(Vehicle.Color.GREEN); 

nếu bạn chỉ cần phải sử dụng Vehicle.Color bên trong cùng một gói như Vehicle bạn có thể xóa public khỏi tuyên bố enum.

+0

Đoán bạn giỏi sử dụng enum bạn có thể giúp tôi trong liên kết này: http: //stackoverflow.com/q/14252822/1503130 – Prateek

2

Nếu bạn muốn làm việc với color enum, bạn phải chia sẻ tuyên bố của nó rộng rãi hơn bạn đang làm. Cách đơn giản nhất có thể là đặt public trước enum color trong Xe.

Tiếp theo, bạn cần khai báo một trường kiểu của enum. Tôi đề nghị bạn thay đổi tên của enum từ color thành Color, bởi vì về cơ bản nó là một lớp học. Sau đó, bạn có thể khai báo một trường: private Color color trong số các trường khác của bạn.

Để sử dụng enum và đặc biệt là các hằng số của nó từ một lớp khác, bạn cần phải biết rằng enum được lồng trong xe. Bạn cần phải đủ điều kiện cho tất cả các tên, vì vậy:

Vehicle.Color myColor = Vehicle.Color.RED; 

Bakkal vui lòng viết mã để chứng minh phần lớn những gì tôi đã nói đến. Xem câu trả lời của anh ấy để biết chi tiết!

+0

đó là của anh ấy, rất vui được gặp bạn :) – bakkal

+2

Tôi không chắc chắn lắm bức ảnh và không muốn xúc phạm bạn;) –

Các vấn đề liên quan