Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- s
- ㅅ
- 윤성우 열혈자료구조
- Graph
- datastructure
- C 언어 코딩 도장
- 윤성우의 열혈 자료구조
- stream
- coding test
- 혼자 공부하는 C언어
- 알기쉬운 알고리즘
- insertion sort
- R
- Algorithm
- Serialization
- Stack
- buffer
- 이것이 자바다
- 이스케이프 문자
- Selection Sorting
- list 컬렉션
- JSON
- C programming
- 메모리구조
Archives
- Today
- Total
Engineering Note
[Java] ArrayList 초기화 본문
List 컬렉션은 필드로 선언할 때 new ArrayList(); 던지 다른 컬렉션으로 초기화를 해주어야 한다.
초기화를 해주지 않으면, 값을 추가할 때 NullPointException이 발생한다.
예시 코드
// ❌ 초기화 안 함
@Entity
public class Order {
private List<OrderItem> orderItems;
public void addOrderItem(OrderItem item) {
this.orderItems.add(item); // 💥 NullPointerException!
}
}
// ✅ 초기화 함
@Entity
public class Order {
private List<OrderItem> orderItems = new ArrayList<>();
public void addOrderItem(OrderItem item) {
this.orderItems.add(item); // ✅ 안전!
}
}
같은 맥락에서 테스트 코드에서 검증을 할 때도 컬렉션 필드는 null 인지 여부와 내부 객체가 비어있는지도 체크하는 isNotEmpty()를 사용한다.
// 케이스 1: null
Order order = new Order();
order.setOrderItems(null);
assertThat(order.getOrderItems()).isNotEmpty(); // ❌ 실패 (null)
// 케이스 2: 빈 리스트
Order order = new Order();
order.setOrderItems(new ArrayList<>());
assertThat(order.getOrderItems()).isNotEmpty(); // ❌ 실패 (비어있음)
// 케이스 3: 요소 있음
Order order = new Order();
order.setOrderItems(List.of(orderItem1, orderItem2));
assertThat(order.getOrderItems()).isNotEmpty(); // ✅ 통과!
isNotEmpty()를 통과하기 위해서는 케이스3번 처럼 null도 아니면서 값도 있도록 초기화를 해주어야 한다.
케이스1은 orderItems에 null 값을 넣어주었기 때문에 당연히 isNotEmpty()로 테스트하면 테스트가 실패한다. 케이스2는 new ArrayList<>()로 초기화를 해주어서 null은 아니지만 값이 비어있으므로 isNotEmpty()로 검증을 하면 마찬가지로 테스트가 실패한다.
'Programming Language > Java' 카테고리의 다른 글
| [Java] default 접근제어자와 테스트코드 패키지 (0) | 2026.01.08 |
|---|---|
| [Java] 동일성(Identity)과 동등성(Equality) (0) | 2025.12.23 |
| [Java] Stream API 실전 예제(Entity/DTO 변환 과정: forEach -> map 리팩토링) (0) | 2025.10.04 |
| [Java] Lambda expression (0) | 2025.08.27 |
| [Java] Stream, map() (0) | 2025.08.27 |
Comments