자바의 "더블 블록 초기화(Double-Brace Initialization)"는 컬렉션 객체를 초기화하거나 복잡한 초기화 작업을 수행하기 위한 편리한 방법 중 하나입니다. 이 패턴은 익명 내부 클래스와 초기화 블록을 결합하여 객체 초기화 블록처럼 보이게 만드는 방법을 제공합니다. 이를 통해 코드를 간결하게 작성하고 컬렉션을 초기화하거나 객체를 초기화할 때 편리하게 사용할 수 있습니다.
더블 블록 초기화의 구조
더블 블록 초기화는 중괄호({})를 두 번 사용하여 이루어집니다. 외부 중괄호는 익명 내부 클래스를 생성하고, 내부 중괄호는 초기화 블록을 정의합니다.
Collection<Type> collection = new Collection<Type>() {{
// 초기화 블록
add(item1);
add(item2);
}};
더블 블록 초기화의 사용 예제
import java.util.ArrayList;
import java.util.List;
public class DoubleBraceInitializationExample {
public static void main(String[] args) {
List<String> colors = new ArrayList<String>() {{
add("Red");
add("Green");
add("Blue");
}};
System.out.println(colors);
}
}
위의 예제에서는 ArrayList를 생성하고 더블 블록 초기화를 사용하여 초기 요소를 추가합니다. 내부 중괄호 내에 add 메서드를 호출하여 요소를 추가하고, 외부 중괄호로 익명 내부 클래스를 생성합니다.
더블 블록 초기화의 장점
- 코드를 간결하게 작성할 수 있습니다.
- 컬렉션 초기화나 초기화 작업을 하나의 블록에서 수행할 수 있습니다.
- 컬렉션의 요소를 초기화할 때 반복적인 코드 작성을 줄일 수 있습니다.
더블 블록 초기화는 편리한 방법이지만, 너무 남용하지 않는 것이 좋습니다. 코드를 읽기 어렵게 만들 수 있으며, 성능에 영향을 미칠 수 있습니다. 복잡한 초기화 작업을 수행할 때에만 사용하고, 코드의 가독성을 고려하여 적절하게 활용하는 것이 중요합니다
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 상속의 장점 (0) | 2023.11.10 |
---|---|
자바 상속의 정의 (0) | 2023.11.10 |
자바 정적 초기화 블럭 (Static Initialization Block) (0) | 2023.11.09 |
자바 인스턴스 초기화 블럭 (Instance Initialization Block) (0) | 2023.11.09 |
자바 초기화 블럭(initialization block) (0) | 2023.11.09 |