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.

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

SuspiciousTernaryOperatorInVarargsCall
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Probable bugs

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) { }

This inspection depends on the Java feature 'Variable arity methods' which is available since Java 5.

New in 2020.3

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024