woowacourse-study/2022-effective-java

[item53] Set 내부 구현

Closed this issue · 1 comments

안녕하세요 후니~!
궁금한 점이 생겨 이슈 남깁니다😄

성능 이슈로 인한 예제로 Set 내부 코드를 보여주셨는데요

파라미터가 0 ... 10개인 경우의 of가 있고
아래 같은 가변 인수를 받는 of가 따로 있어요

@SafeVarargs
@SuppressWarnings("varargs")
static <E> Set<E> of(E... elements) { ... }

0 ... 10개인 경우의 of가 이미 존재하는데 왜 switch를 통해 element 개수가 0, 1, 2인 경우를 또 다시 검증하나요?

0, 1, 2 임에도 가변인수 메서드를 사용하는 경우를 방어적으로 작성한 거라고 보면 될 것 같습니다. 보시다시피 0, 1, 2와 default는 구현이 달라 이부분을 방어적으로 작성하지 않으면 에러가 발생할 것으로 예상됩니다 ㅎㅎ