日期:2014-05-20  浏览次数:20705 次

Java中的条件编译问题
在网上看到Java中也有种类似C语言条件编译的方法,如下:

class test {
final boolean DEBUG=false;

void fuc() {
  if(DEBUG)
  {
    System.out.println(“Hello,World”);
  }
}

}

有一点我不明白的是编译以后fuc这个函数是不是也不会被编译?还是fuc这个函数还有,但是里面是空的?
多谢!
java条件编译

------解决方案--------------------
有fuc函数,里面是空的。

使用jdk的bin目录下的javap命令查看class文件:
javap -verbose <class文件名>
如:
javap -verbose Test
如果方法fuc被编译了,可看到,可以用一个有条件编译的class和一个没有条件编译的class对比着看,就看出不同了。
 
如果了解class文件结构,还可以直接使用二进制文件查看器去观察class文件。