• 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