The naive solution is to put in an early return statement in the code. However, the Java compiler detects this and you get a compiler unreachable statement error. There is a way around this though!
Lets look at some code to illustrate this.
Test.java
public class Test {
public void doSomething() {
int i = 1;
int j = 2;
int k = i + j;
if (k != 3) {
throw new RuntimeException("Expecting 3!");
}
}
}
This code doesn't do anything useful, but for example purposes lets say we needed to return early from the method before the 'int k = i + j;' line was executed. We could try inserting a return statement like this...
Test.java
...
int j = 2;
return;
int k = i + j;
...
Of course this would get a compile error...
Test.java:9: error: unreachable statement
int k = i + j;
^
1 error
int k = i + j;
^
1 error
So how do we trick the compiler in letting us return early? It's as simple as adding an invariant true condition to the return statement thus:
Test.java
...
int j = 2;
if (1 == 1) {
return;
}
int k = i + j;
...
The condition inside the if statement will always evaluate to true (unless you're doing quantum computing maybe) so we will always execute the return statement and the compiler will not complain.
This is a trick and abuse of the language so it should not be used in normal programming situations, but under certain conditions this can make an invaluable debugging tool.
-i