用于C++样式编译器指令的Java解决方案

9 c++ java

我有一个Java数组:

    String[] myArray = {"1", "2"};
Run Code Online (Sandbox Code Playgroud)

根据编译时已知的条件,我想分配不同的值:

    String[] myArray = {"A", "B", "C"};
Run Code Online (Sandbox Code Playgroud)

在C++中我会使用类似的东西

#ifdef ABC
  // ABC stuff here
#else
  // 123 stuff here
#endif
Run Code Online (Sandbox Code Playgroud)

但是在Java中该怎么做?

dfa*_*dfa 13

class Foo {

   static final boolean ABC = true;

   public void someMehod() {
       if (ABC) {  // #ifdef ABC

       } else {    // #else

       }           // #endif
   } 
}
Run Code Online (Sandbox Code Playgroud)

因为ABC既是静态的又是最终的,编译器在编译时对其进行评估,有效地像预处理器一样.

  • 从评论中使用libt的想法.使用System.getProperty("...")分配ABC. (4认同)