知识大全 从思路开始 Java如何实现条件编译

Posted 条件

篇首语:厌伴老儒烹瓠叶,强随举子踏槐花。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 从思路开始 Java如何实现条件编译相关的知识,希望对你有一定的参考价值。

从思路开始 Java如何实现条件编译  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  条件编译绝对是一个好东西 如在C或CPP中 可以通过预处理语句来实现条件编译 代码如下

  #IFDEF DEBUG#UNDEF DEBUG#ENDIF#define DEBUG#IFDEF DEBUUG  /*   code block    */#ELSE  /*   code block   */#ENDIF  但是在JAVA中却没有预处理 宏定义这些东西 而有时在一些项目中 我们又需要条件编译 那么 在JAVA中 该如何实现条件编译呢?

  我们来看一个例子

  编写一个helloworld程序 代码如下

  public class Hello     public static void main(String[] args)         System out println( Hello world! );      保存为Hello java并编译 得到一个class文件 并且观察到文件大小是 字节 然后我们对这个文件进行反编译 用jd gui 得到代码如下

  import java io PrintStream;public class Hello  public static void main(String[] paramArrayOfString)      System out println( Hello world! );    得到这个有什么用呢?

  现在我们再来对源代码进行修改 修改后的代码如下

  public class Hello     public static void main(String[] args)         if(false)             System out println( Hello world! );              进行编译 这时我们再看它的大小 只有 字节 怎样?想到什么了吧?没错 编译器会对代码进行优化 对于条件永远为false的语句 JAVA编译器将不会对其生成字节码 下面我们再来对该class文件进行反编译 果然代码如下

  public class Hello  public static void main(String[] paramArrayOfString)   

  利用JAVA编译的这一优化机制 我们就可以实现JAVA的条件编译了

  public class Hello     public static void main(String[] args)         if(false)             System out println( Hello world! );              定义一个final的变量 然后再在if语句中使用 代码如下

  public class Hello     public static void main(String[] args)         final boolean DEBUG = true;        if(DEBUG)             System out println( Hello world! );              当条件编译使用得多时 上面将极不利于代码的修改及维护 这时就可以用一种更为灵活的方法 定义一个静态类 里面专门定义用来控制条件编译的变量 然后再在具体的代码中导入该类 使用这些final变量 代码如下

cha138/Article/program/Java/hx/201311/25823

相关参考

知识大全 editplus能够编译java嘛? 如何设置

  先要将JAVA的运行环境安装并且调试好  首先从菜单工具(Tools)>配置用户工具进入用户工具设置  在类别里展开工具树形菜单>用户工具选择组和工具项目中的Group点击面板右边的组

知识大全 Java 相关的编译技术

Java相关的编译技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  除了Java的编译器和虚拟

知识大全 JAVA语言安全行研究--Java的反编译

JAVA语言安全行研究--Java的反编译  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jav

知识大全 Java混淆编译器

Java混淆编译器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    最近试用了几个Java混淆

知识大全 谈谈JAVA的反编译

谈谈JAVA的反编译  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者因最近分析一些JAVA程

知识大全 如何用javac 和java 编译运行整个Java工程

如何用javac和java编译运行整个Java工程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 研究Java的反编译性

研究Java的反编译性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 使用Ant编译Java工程[4]

使用Ant编译Java工程[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!projectget

知识大全 使用Ant编译Java工程[5]

使用Ant编译Java工程[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Pathlike

知识大全 使用Ant编译Java工程[2]

使用Ant编译Java工程[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  例子  ant