Inspectopedia
 
2024.3

Guava pseudo-functional call can be converted to Stream API call

Warning
New
Last modified: 03 December 2024

Reports usages of Guava pseudo-functional code when Java Stream API is available.

Though Guava Iterable API provides functionality similar to Java Streams API, it's slightly different and may miss some features. Especially, primitive-specialized stream variants like IntStream are more performant than generic variants.

Example:

After the quick-fix is applied:

List<String> transformedIterable = someList.stream().map(someTransformFunction).collect(Collectors.toList());

Note: Code semantics can be changed; for example, Guava's Iterable.transform produces a lazy-evaluated iterable, but the replacement is eager-evaluated.

This inspection depends on the Java feature 'Stream and Optional API', which is available since Java 8.