Java中利用package机制实现条件编译

http://www.cnblogs.com/phinecos/archive/2010/03/15/1685965.html

Java中并没有C语言里的“条件编译”特性。这种特性在C语言里是用来解决代码的跨平台问题的,可以通过让代码的不同部分根据其运行的具体平台进行编译。由于Java本身就设计为一种跨平台的语言,因此这种特性就没有存在的必要了。

但是条件编译对于代码的调试来说还是很有用处的。就像我们在C语言中学到的一样,可以通过一些条件编译的开关来使得一些调试代码只在开发过程中使用,而在发布的版本中则不会编译进去。

我们可以利用Java的package来模仿条件编译的概念,从而可以用于java代码的调试开发。

代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package com.vista.debug

public class Assert
{
    private static void printErr(String msg)
    {
        System.err.println(msg);
    }
    public final static void isTrue(boolean exp)
    {
        if (!exp) printErr("Assertion failed");
    }
    public final static void isFalse(boolean exp)
    {
        if (exp) printErr("Assertion failed");
    }
    public final static void isTrue(boolean exp,String msg)
    {
        if (!exp) printErr("Assertion failed" + msg);
    }
    public final static void isFalse(boolean exp,String msg)
    {
        if (!exp) printErr("Assertion failed" + msg);
    }
}

如果想在我们的代码中使用这个断言类进行调试,只需要引入下述package:

import com.vista.debug.*;

  当我们准备编译发行版本时就需要清除掉原来引入的断言机制,为此我们只需要在了一个不同的package中创建一个同样名为Assert的类,代码如下:

代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package com.vista.release

public class Assert
{
    private static void printErr(String msg){}
    public final static void isTrue(boolean exp){}
    public final static void isFalse(boolean exp){}
    public final static void isTrue(boolean exp,String msg){}
    public final static void isFalse(boolean exp,String msg){}
}

再将前面的import语句修改如下:

import  com.vista.release. * ;

 

    这样断言机制就从我们的代码中去除掉了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值