Java中的条件编译问题
在网上看到Java中也有种类似C语言条件编译的方法,如下:
class test {
final boolean DEBUG=false;
void fuc() {
if(DEBUG)
{
System.out.println(“Hello,World”);
}
}
}
有一点我不明白的是编译以后fuc这个函数是不是也不会被编译?还是fuc这个函数还有,但是里面是空的?
多谢!
------解决方案--------------------有fuc函数,里面是空的。
使用jdk的bin目录下的javap命令查看class文件:
javap -verbose <class文件名>
如:
javap -verbose Test
如果方法fuc被编译了,可看到,可以用一个有条件编译的class和一个没有条件编译的class对比着看,就看出不同了。
如果了解class文件结构,还可以直接使用二进制文件查看器去观察class文件。