2010-07-16 4 views
5

enum 변수를 클래스 멤버로 선언해야하고 Java bean처럼 setter와 getter를 정의해야합니다. 이 같은 -Java bean에서 enum 변수 선언하기

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

지금, 나는 다른 클래스의 적색, 녹색 또는 같은 색의 속성을 설정하려면 그에 따라 의사 결정을 만들고 싶어.

+0

그건 질문이 아닙니다! :) –

답변

13

열거 형은 공개되어야 할 것이다 은 외부 세계에서 볼 수 :

다음
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을 제거 할 수 있습니다.

+0

열거 사용법에 잘하는 것 같아요.이 링크에서 나를 도울 수 있습니다. http : //stackoverflow.com/q/14252822/1503130 – Prateek

2

color enum으로 작업하려면 더 넓게 선언문을 공유해야합니다. 가장 간단한 방법은 차량의 enum color 앞에 public을 넣는 것입니다.

다음으로 열거 형의 필드를 선언해야합니다. 기본적으로 어쨌든 클래스이기 때문에 color에서 Color으로 열거 형의 이름을 변경하는 것이 좋습니다. 그런 다음 다른 필드와 함께 필드 : private Color color을 선언 할 수 있습니다.

열거 형 및 특히 다른 클래스의 해당 상수를 사용하려면 enum이 Vehicle에 중첩되어 있음을 알아야합니다. 다음과 같이 모든 이름을 한정해야합니다.

Vehicle.Color myColor = Vehicle.Color.RED; 

Bakkal은 내가 말한 것을 많이 보여주기 위해 친절하게 코드를 작성했습니다. 자세한 내용은 그의 답변을 참조하십시오!

+0

만나서 반가워요. – bakkal

+2

잘 모르겠습니다. 사진과 당신을 불쾌하게하고 싶지 않았어;) –