티스토리 뷰
자바 5 버전 부터 Varargs의 개념이 도입되었다. (아마 5부터 등장한 제네릭의 영향인것으로 개인적으로 추정한다)
따라서 여러 argument를 메서드에서 받을 수 있다.
<T> void foo(T... args);
위 코드에서 T...는 T[ ] 로 변환된다.
하지만 문제는 T의 값이 가 다른 타입의 파라미터일 경우 동작하지 않는다.
new T[ ]를 사용할 수 없기 때문에 new Object[ ] 라는 것을 사용한다.
만약 내 메서드가 T... 타입의 argument를 가지고 있으면,
- Safe: array의 요소가 T의 인스턴스인지에 대해서만 달렸다. 사실에 내 메서드가 의존한다.If your method only depends on the fact that the elements of the array are instances of T
- Unsafe: array가 T[]의 인스턴스인지에 대해서만 달렸다.
사실 잘 모르겠다...
다음 번에 추가적으로 정리하도록 할것.
(이 페이지는 개인적인 기록 용도로 작성되었습니다.)
이상.
Reference:
https://www.baeldung.com/java-safevarargs
'Programming > Java' 카테고리의 다른 글
try-with-resources 적용 후기 (0) | 2023.03.17 |
---|---|
Java Exception: Checked vs Unchecked, @SneakyThrows (0) | 2023.02.28 |
Trouble Shooting: java list ( Arrays.asList(), List.of() )사용시 UnsupportedOperationException 해결법 (0) | 2022.12.19 |
Junit5 (0) | 2022.12.01 |
Junit5에서 assertIterableEquals과 assertLinesMatch의 차이점 (0) | 2022.10.25 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday