Inspectopedia Help

'Optional' used as field or parameter type

Reports any cases in which java.util.Optional<T>, java.util.OptionalDouble, java.util.OptionalInt, java.util.OptionalLong, or com.google.common.base.Optional are used as types for fields or parameters.

Optional was designed to provide a limited mechanism for library method return types in which a clear way to represent "no result" was needed.

Using a field with the java.util.Optional type is also problematic if the class needs to be Serializable, as java.util.Optional is not serializable.

Example:

class MyClass { Optional<String> name; // Optional field // Optional parameter void setName(Optional<String> name) { this.name = name; } }

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.14841

Last modified: 12 March 2024