JAVA/포스팅

자바 더블 블럭 초기화 (Double-Brace Initialization)

짜집퍼박사(짜박) 2023. 11. 9. 10:29

자바의 "더블 블록 초기화(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