나는 내가 이해하려고 노력하고 다음 코드가 있습니다 다른 방법으로 자바 열거 형을 만들 수 있습니까?
public class A {
enum Size {S, M, L };
Size size = Size.M;
}
는 내가 처음 열거 라인은 세 개의 값을 열거를 생성되지만 두 번째 줄은 무엇을하고 이해를? 가변 크기는 무엇을 유지하며 열거 형을 구성하는 또 다른 방법입니까?
나는 내가 이해하려고 노력하고 다음 코드가 있습니다 다른 방법으로 자바 열거 형을 만들 수 있습니까?
public class A {
enum Size {S, M, L };
Size size = Size.M;
}
는 내가 처음 열거 라인은 세 개의 값을 열거를 생성되지만 두 번째 줄은 무엇을하고 이해를? 가변 크기는 무엇을 유지하며 열거 형을 구성하는 또 다른 방법입니까?
두 번째 줄은 클래스 A 인스턴스의 size
(유형 Size
) 필드에 초기 값 Size.M
을 부여하는 것입니다.
열거 형이 A
클래스 내부에서 생성 되었기 때문에 약간 방해가 될 수 있습니다.이 파일은 다른 파일에있을 수 있습니다 (단, 클래스 A에서만 사용하면 클래스 A 안에 넣어도 괜찮습니다).
public enum QueryError {
no_request("no_request", "No request in client call"),
no_alias_requested("no_alias_requested", "no alias requested"),
session_not_found("session_not_found", "wrong session id"),
synosteelQuery_not_found("sxxx_not_found", "sxxx not found");
public JsonpServerResponse.Error error;
private QueryError(String type, String details) {
this.error = new JsonpServerResponse.Error();
this.error.type = type;
this.error.detail = details;
}
}
두 번째 같은 :
EDIT (답의 정말 일부) : 당신은 더 나은 열거 선언의 형태를 이해할 수 있도록 여기에 열거 선언의 (꽤되지 않음) exemple의 클래스 A
에 Size
유형의 패키지 전용 멤버 변수를 선언하고 Size.M
을 가리 키도록 초기화하고 있습니다.
enum은 유형 (클래스가 유형 인 것처럼)입니다. 두 번째 줄은 크기라는 유형을 가진 size라는 인스턴스 변수를 생성합니다 (열거 형이므로). 그런 다음 인스턴스 변수의 값을 enum Size 인스턴스 (특히 Size.M 인스턴스)의 인스턴스로 초기화합니다.
그래서 열거 형을 초기화하기 위해 중괄호를 사용할 필요가 없습니까? – Alan2
중괄호는 열거 형의 * 정의 *에 사용됩니다. 즉, 그것이 보유 할 수있는 가능한 값은 무엇이며, 그 값 인스턴스에서 실행될 수있는 메소드도 있습니다. 2 행은 열거 형의 정의가 아닙니다. 이것은 특정 인스턴스 (라인 1에서 정의 됨)를 변수에 할당 한 것입니다. –
크기라는 enum과 S, M 및 L이라는 열거 형의 세 인스턴스가 있습니다. 두 번째 줄 다음에 'size'는 M이라는 크기 열거 형의 인스턴스를 포함합니다. – sjr