Inspectopedia Help

'@JvmOverloads' annotation cannot be used on constructors of annotation classes since 1.4

Reports @JvmOverloads on constructors of annotation classes because it's meaningless.

There is no footprint of @JvmOverloads in the generated bytecode and Kotlin metadata, so @JvmOverloads doesn't affect the generated bytecode and the code behavior.

@JvmOverloads on constructors of annotation classes causes a compilation error since Kotlin 1.4.

Example:

annotation class A @JvmOverloads constructor(val x: Int = 1)

After the quick-fix is applied:

annotation class A constructor(val x: Int = 1)

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.

ProhibitJvmOverloadsOnConstructorsOfAnnotationClassesMigration
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 | Kotlin | Migration

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Kotlin, 241.18072-IJ

Last modified: 18 June 2024