, 그것은 유용
초기화 블록을 사용하지 않는 대안이있다
public class MediocreExample {
static List<String> strings = new ArrayList<String>();
static {
strings.add("first");
strings.add("second");
}
}
: 당신이 초기화 버전은 매우 명확하고 간결하다 볼 수 - -
public class MediocreExample {
static List<String> strings = createInitialList();
private static List<String> createInitialList() {
List<String> a = new ArrayList<String>();
a.add("first");
a.add("second");
return a;
}
}
비 초기화 대안을 사용하는 매력적인 이유 정말 없다하지만이 점을 설명하기 위해 그것을 포함하고있어이 : 돈 블라인드 디자인 결정을 내리지 않는다. 왜 당신이 선택한 옵션을 선택하는지 알 수 있습니다.
때로는 이와 같은 편리한 대안이 없습니다.
public class MediocreExample {
static {
System.out.println("MediocreExample static init.");
}
}
동등한 코드를 생성하는 다른 방법이있다하지만 그 깨끗한입니다 : 목표는 정적 초기화에 콘솔에 뭔가를 인쇄하는 경우.
그러나 가장 일반적인 방법으로 가장 명확하고 유지하기 쉬운 코드를 제공하십시오. 언어 란 생각을 표현하고, 명확하게 말 (유형)하는 방법입니다.
관련 항목 http://stackoverflow.com/questions/804589/use-of-initializers-vs-constructors-in-java?rq=1 – Kevin
http://www.jusfortechies.com/java/core-java/static-blocks. 코드를 사용하여 정적 변수를 초기화하려면 ph – zod
을 입력하십시오. 이것은 간단한 표현식에 할당되지 않은 변수를 초기화하는 일반적인 방법입니다. 이렇게해야 할 때 대안이별로 중요하지 않으므로 좋은 대안이 없습니다. 각 변수를 호출하는 정적 메서드를 만들 수 있지만 이것은 우아하지 않고 더 혼란 스러울 수 있습니다. –