Getting started
Rules
Remove deep logic rule
Collapsible If Statements Rule
Silly equality checks rule
Constructors should not be used to instantiate "String", "BigInteger", "BigDecimal" and primitive-wrapper classes
Nested blocks of code should not be left empty
Exception handlers should preserve the original exception
Logging arguments should not require evaluation
Local variable and method parameter names should comply with naming convention
Fields in a Serializable class should either be transient or serializable
Primitive wrappers should not be instantiated only for "toString" or "compareTo" calls
String literals should not be duplicated
System.out and System.err should not be used as loggers
Throwable.printStackTrace(...) should never be called
Exceptions in "throws" clauses should not be superfluous
Optional orElse should not be used with method call expression
Boolean checks should not be inverted
"indexOf" checks must not be used to check whether a value is included in a string or a list
"Collection.isEmpty()" should be used to test for emptiness
Case insensitive comparison
Equals on atomic class
String literal inside equals
The diamond operator ("<>") should be used
Declarations should use Java collection interfaces