"MyClass"라는 클래스 내에 정적 "Builder"클래스가 있습니다. 두 스레드에서 빌더를 동시에 사용하여 MyClass의 인스턴스 두 개를 만들려고해도 안전할까요? 한 스레드가 설정 한 값을 다른 스레드가 만든 객체에 할당 할 수 있습니까? 정적 중첩 클래스 스레드 안전성 -
코드
:public class MyClass {
private int height;
private int weight;
private MyClass(Builder builder) {
height = builder.height;
weight = builder.weight;
}
public static class Builder {
private int height;
private int weight;
public Builder height(int h) {
height = h;
return this;
}
public Builder weight(int w) {
weight = w;
return this;
}
public MyClass build() {
return new MyClass(this);
}
}
}
왜 위험하다고 생각합니까? –
Hello shadow, 빌더를 어떻게 사용 하시겠습니까? (예제 코드를 알려주십시오)? –
정적 내부 클래스는 싱글 톤의 형식이라는 의미에서 정적은 아니며 기본적으로 최상위 클래스를 의미하며 내부 클래스의 메서드와 필드에 암묵적으로 액세스 할 수 없습니다. –