완료 시 두 개의 브랜치가 배열에 래핑됩니다. 그 결과 배열 브랜치는 2차원 배열로 전환되며 문제가 발생할 가능성이 있습니다.
빠른 수정은 비 배열 브랜치를 배열에 래핑하여, 컴파일러가 변환하지 못하도록 방지합니다.
예:
static void bar(boolean flag) {
Object[] a = {1, 2};
Object b = "hello";
foo(flag ? a : b);
}
static void foo(Object... obj) {
}
빠른 수정 후:
static void bar(boolean flag) {
Object[] a = {1, 2};
Object b = "hello";
foo(flag ? a : new Object[]{b});
}
static void foo(Object... obj) {
}
2020.3의 새로운 기능