@Test
void test() {
List<?> list1 = getList(1, 2, 3);
List<?> list2 = getList(1, 2, 3, 4, 5);
list1.forEach(System.out::println);
list2.forEach(System.out::println);
}
private List<?> getList(int... args) { // 가변인자. args는 int[] 배열로 들어온다.
return Arrays.asList(args);
}
메소드 가변인자는 배열 Object[]
형태로 들어오며 유연성을 제공하지만,
사용할 때는 신중하게 반드시 필요할 때만 사용해야한다.
private Object get(Object o1) {
...
}
private Object get(Object o1, Object o2) {
...
}
private Object get(Object o1, Object o2, Object o3) {
...
}
위와 같이 OverRoading 된 메소드를 계속 늘려야하는 경우, 가변인자는 유용하게 쓰일 수 있다.
private Object get(Object... args) {
...
}