이중 중괄호 사용

단일 표현식에서 Java 객체를 생성하고 초기화하기 위해 이중 중괄호를 사용할 수 있습니다.

이렇게하면 인스턴스 이니셜라이저만 포함된 익명의 내부 클래스가 생성됩니다.

 

 

예제

[ 자바 객체 초기화 ]

import java.util.Arrays;
 
class Employee
{
    private String name;
    private int id;
 
    public void setName(String name) {
        this.name = name;
    }
 
    public void setAge(int id) {
        this.id = id;
    }
 
    // 게터
 
    @Override
    public String toString() {
        return Arrays.asList(name, String.valueOf(id)).toString();
    }
}
 
// Java에서 객체 초기화
class Main
{
    public static void main(String[] args)
    {
        // 익명 클래스
        Employee person = new Employee() {{
            // 초기화 블록
            setName("Aditya");
            setAge(27);
        }};
 
        System.out.println(person);
    }
}

 

 

[ Java 에서 세트 초기화 ]

Set<Integer> set = new HashSet<Integer>() {{
    add(1);
    add(2);
    add(3);
}};

 

 

이외에 List, Map 초기화에도 세트 초기화와 같은 형식으로 사용됩니다.

 

하지만 이중 중괄호는 사용할 때마다 추가 클래스가 필요하므로 이 기술은 피하는 것이 좋습니다.

또한 인스턴스 및 개체에 대한 숨겨진 참조를 보유하므로, 메모리 누수 문제를 일으킬 수 있습니다.

'JAVA' 카테고리의 다른 글

PriorityQueue ( 우선순위큐 )  (0) 2022.09.27
putIfAbsent  (0) 2022.08.11
HashSet  (0) 2022.08.11
Stream  (0) 2022.08.10
HashMap  (0) 2022.08.10

+ Recent posts