Inspectopedia Help

'public' method not exposed in interface

Reports public methods in classes which are not exposed in an interface.

Exposing all public methods via an interface is important for maintaining loose coupling, and may be necessary for certain component-based programming styles.

Example:

interface Person { String getName(); } class PersonImpl implements Person { private String name; // ok: method is exposed in interface @Override public String getName() { return name; } // warning: method is public // but not exposed in interface public void setName() { this.name = name; } }

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.

PublicMethodNotExposedInInterface
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 | Abstraction issues

Use the Ignore if annotated by list to specify special annotations. Methods annotated with one of these annotations will be ignored by this inspection.

Use the Ignore if the containing class does not implement a non-library interface option to ignore methods from classes which do not implement any interface from the project.

Inspection options

Here you can find the description of settings available for the 'public' method not exposed in interface inspection, and the reference of their default values.

Ignore if annotated by

Empty

Ignore if the containing class does not implement a non-library interface

Not selected

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