Some Guava features were really useful for Java 7 application because Guava was bringing APIs missing in the JDK. Java 8 fixed these limitations. When migrating an application to Java 8 or even when starting a new one, it's recommended to prefer Java 8 APIs over Guava ones to ease its maintenance: developers don't need to learn how to use two APIs and can stick to the standard one.
This rule raises an issue when the following Guava APIs are used:
| Guava API | Java 8 API |
|---|---|
| com.google.common.io.BaseEncoding#base64() | java.util.Base64 |
| com.google.common.io.BaseEncoding#base64Url() | java.util.Base64 |
| com.google.common.base.Joiner.on() | java.lang.String#join() or java.util.stream.Collectors#joining() |
| com.google.common.base.Optional#of() | java.util.Optional#of() |
| com.google.common.base.Optional#absent() | java.util.Optional#empty() |
| com.google.common.base.Optional#fromNullable() | java.util.Optional#ofNullable() |
| com.google.common.base.Optional | java.util.Optional |
| com.google.common.base.Predicate | java.util.function.Predicate |
| com.google.common.base.Function | java.util.function.Function |
| com.google.common.base.Supplier | java.util.function.Supplier |