Inspectopedia Help

Suspicious ternary operator in varargs method call

Reports vararg method calls that use a ternary operator with mixed array and non-array branches.

When compiled, both branches are wrapped in arrays. As a result, the array branch is turned into a two-dimensional array, which may indicate a problem.

The quick-fix wraps the non-array branch in an array to prevent the compiler from doing the conversion.

Example:

static void bar(boolean flag) { Object[] a = {1, 2}; Object b = "hello"; foo(flag ? a : b); } static void foo(Object... obj) { }

After the quick-fix:

static void bar(boolean flag) { Object[] a = {1, 2}; Object b = "hello"; foo(flag ? a : new Object[]{b}); } static void foo(Object... obj) { }

New in 2020.3

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023