IDEA is just the coolest IDE since sliced bread. Today I discovered the ‘invert if’ and ‘split if’ refactorings. Just put the text cursor next to an ‘if’ statement and IDEA will ask if you would like to invert it or split it! Consider the following:
if (foo != null && bar != null) { // Do some stuff return true; } return false;
After ‘split if’:
if (foo != null) { if (bar != null) { // Do some stuff return true; } } return false;
After two ‘invert ifs’:
if (foo == null) { return false; } if (bar == null) { return false; } // Do something return true;
Which I think is much clearer and more open to further refactorings, as it has clearly separated the guard clauses from what the method is actually supposed to be doing. Cool.