#if in java, like in c preprocessors

There is no preprocessor in Java. Depending on your build system, you may be able to use a third-party preprocessor (you can find lots of them by searching for "java preprocessor"). Some examples are

  • pre-processor-java
  • java-comment-preprocessor
  • javapp
  • prebop

Depending on the scope you want to comment out, you can use block comments and sometimes something like

if (false) {
    . . .
}

If all else fails, just comment out every line using //. Most IDEs have a way to do this (and undo it) efficiently.

P.S. If you can use block comments (not always possible, since block comments can't be nested in Java), there's a nice trick that makes it easier to toggle off and on the comment-out portion. Start your block comment on a line by itself, but end it with another isolated line that starts with a line comment, like this:

/*
   <block of code ignored as comment>
//*/

Then if you want to turn the commented-out section back on, just add a second / at the start of the block:

//*
   <block of code now active>
//*/

To toggle the code off again, just remove the first /. (Without the // at the start of the last line, the dangling */ would be a syntax error whenever you activated the code by adding a / to the opening line of the block.)


I'm under the assumption that the compiler will strip the code inside blocks enforced with constant/final flags? This is how you can leave code in your project that isn't shipped in the final apk.

public final static boolean DEBUG = false;

if(DEBUG) {
    //add messy error prone code here
    //compiler will strip this out as unreachable when false
}

Read here:

http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.21


You have to comment out the code, you can't use pre-processor directive in java.


Java has no pre-processor along the lines of C.

Since, according to the tags, you're using Eclipse, you can simply mark the entire block of code you want to comment out then use CTRL - /.

You can also use that same key sequence to uncomment an already-commented-out block.