zoukankan      html  css  js  c++  java
  • java 仿c/c++ 中#define #ifdef 的功能做Debug(转载)

    转载自:http://livehappy.iteye.com/blog/865277

    C代码

     #define DEBUG   

        调试完成后只需将这个define命令行删除即可。有人可能觉得不用条件编译也可达此目的,即在调试时加一批printf语句,调试后一一将printf语句删除去。的确,这是可以的。但是,当调试时加的printf语句比较多时,修改的工作量是很大的。用条件编译,则不必一一删改printf语句,只需删除前面的一条“#define DEBUG”命令即可,这时所有的用DEBUG作标识符的条件编译段都使其中的printf语句不起作用,即起统一控制的作用,如同一个“开关”一样。
            Java这种常用在大型案例的语言沒有类似的功能,不过要模仿#ifdef的功能是可以的。简单说,Java 编译器为了最佳化,只要发现条件式的值为false,编译时就会把该区段代码忽略。所以只要定有一个 public final boolean 变量就可以了。例如:

    新建一个package ,比如: com.foo.debug

    建立一个debug.java

    1 package com.foo.debug;
    2 
    3 public interface Debug    
    4     {    
    5 //        public final boolean ENABLE = false;  
    6         public final boolean ENABLE = true; 
    7     }

    在其他java中引用即可

    1 //import Debug
    2 import com.foo.debug.Debug;
    3 
    4 //....
    5 if(Debug.ENABLE) {
    6    Log.d("HelloWorld_activity", "Toast "HI"");
    7 }
    8 //....


     

  • 相关阅读:
    Mysql Explain 详解【转】
    Windows下Gradle安装与配置
    MYSQ创建联合索引,字段的先后顺序,对查询的影响分析
    给.Net 5 Api增加JwtBearer认证
    纸壳CMS 3.3.6发布升级.Net 5
    PL/SQL Developer登入时候报ORA-12638: 身份证明检索失败的解决办法
    Mybatis 日志工厂
    Mybatis 配置解析
    Mybatis 完成增删改查
    Mybatis 简介
  • 原文地址:https://www.cnblogs.com/esta-pessoa/p/5411755.html
Copyright © 2011-2022 走看看