报告使用具有混合数组分支和非数组分支的三元运算符的可变参数方法调用。

编译时,两个分支都被包装在数组中。 结果,数组分支变成了二维数组,这可能说明有问题。

快速修复会将非数组分支包装在数组中以防止编译器执行转换。

示例:

    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 的新功能