두 개의 중괄호로만 처리 된 정적은 무엇을 의미합니까? 초급 질문에 사과드립니다. 나는 그것에 대한 튜토리얼을 찾으려고했지만 하나를 찾을 수 없었다. 이렇게 정적 인 : static {}을 사용하면 나에게 명확하지 않습니다. 나는 그것이 다른 사람들에 의해 여기에 사용되는 것을 발견했다 developerWorks. 다중 행 또는 그룹, 수정 자일 수 있다고 생각하고 아래 코드를 시도했지만 다른 유형 수정자는 정적이 아닌 오류를 발생시킵니다.두 개의 중괄호로만 이루어진 정적은 무엇을 의미합니까?
public class MyClass {
private volatile int v1=0;
private final int v2=0;
private static int v3=0;
static { <----- No error here.
int i1=0;
String s1="abc";
double d1=0;
};
final { <----- Error here.
int i2=0;
String s2="abc";
double d2=0;
};
volatile { <----- Error here.
int i3=0;
String s3="abc";
double d3=0;
};
}
static initialiser 블록과 함께 정적 키워드없이 {} 만 사용하여 인스턴스 변수를 초기화 할 수도 있습니다. – JamesB
당신이 그것을 사용하는 경우에는 말이되지 않습니다. 정적 이니셜 라이저 블록은 일반적으로 정적 멤버를 초기화하는 데 사용됩니다 (예 :'static int i; static {Obj obj = someObject(); i = obj.generateIValue(); }', 또는 다른 정적 초기화를 수행하십시오. – eis
비슷한 질문 링크를 제공해 줄 수 있습니까? @ 알렉시스 킹. – Student