Inspectopedia Help

Mismatched query and update of collection

Reports collections whose contents are either queried and not updated, or updated and not queried.

Such inconsistent queries and updates are pointless and may indicate either dead code or a typo.

Use the inspection settings to specify name patterns that correspond to update/query methods. Query methods that return an element are automatically detected, and only those that write data to an output parameter (for example, an OutputStream) need to be specified.

Example:

Suppose you have your custom FixedStack class with method store():

public class FixedStack<T> extends Collection<T> { public T store(T t) { // implementation } }

You can add store to the update methods table in order to report mismatched queries like:

void test(int i) { FixedStack<Integer> stack = new FixedStack<>(); stack.store(i); }

Inspection options

Option

Type

Default

HorizontalStack

None

Query names start with

StringList

[contains, copyInto, equals, forEach, get, hashCode, indexOf, iterator, lastIndexOf, parallelStream, peek, propertyNames, save, size, store, stream, toArray, toString, write]

Update names start with

StringList

[add, clear, insert, load, merge, offer, poll, pop, push, put, remove, replace, retain, set, sort, take]

Ignored classes (including subclasses)

StringList

[]

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023