이중 중괄호 사용
단일 표현식에서 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 |