Consider using switch instead of if/else for enums. That is, prefer this:

switch (foo.getBar()) {
  case BAZ:
    doSomething();
    break;
  default:
    doSomethingElse();
}

instead of this:

if (foo.getBar().equals(Bar.BAZ)) {
  doSomething();
} else {
  doSomethingElse();
}

Switches on enums have a few small advantages worth considering:

  • It sidesteps the equals vs. == debate.
  • You get to call BAZ by its simple name without a static import. That's good because you might not want to see it appear unqualified in other parts of the file where the context would not make its meaning so clear.
  • You have the option of [protection against missing cases][MissingCasesInEnumSwitch] if you want it.