编译时,两个分支都被包装在数组中。 结果,数组分支变成了二维数组,这可能说明有问题。
快速修复会将非数组分支包装在数组中以防止编译器执行转换。
示例:
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 的新功能