The J++ 6.0 includes the ability to do conditional compilation, a mechanism for debugging code. J++’s conditional compilation allows you to include or exclude entire blocks of code at run time using the conditional directives #if, #else, #endif, #define, and #undef. Here’s an example of how conditional directives work:
#define DEBUG#if DEBUG System.out.println("We have a problem");#else System.out.println("All's well");#endif
The #define statement sets the identifier DEBUG (put any name) to true. That would cause the statement within the #if block to execute. Simply removing the #define statement, or changing it to #undef DEBUG, will cause the #else block to execute. Here are a few examples of why it’s important:
- Include diagnostic code during development, and then exclude it all at run time by simply removing the one #define statement.
- Exclude code that you think you may want to include again at a later date.
- Switch among several code sections to experiment with different implementations by #define-ing different identifiers.
You can also use expressions with the #if and #else directives, just as you can with the standard Java if/else structure.