当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:17:00  来源:本站整理

<b>操作导入改变java行为</b>[Java编程]

赞助商链接



  本文“<b>操作导入改变java行为</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Java已撤消的一种特点是C的“条件编译”,它答应我们改变参数,得到差别的行为,同时不改变其他任何代码.Java之所以丢弃了这一特点,大概是由于该特点常常在C里用于办理跨平台问题:代码的差别部份按照具体的平台举行编译,不然不能在特定的平台上运行.由于Java的计划思惟是成为一种自动跨平台的语言,所以这种特点是没有必要的.
但是,条件编译还有另一些非常有代价的用处.一种很常见的用处就是调试代码.调试特点可在开辟历程中利用,但在发行的产品中却无此功效.Alen Holub(www.holub.com)提出了操纵包(package)来模拟条件编译的概念.按照这一概念,它成立了C“断定机制”一个非常有效的Java版本.之所以叫作“断定机制”,是由于我们可以说“它应当为真”大概“它应当为假”.假如语句差别意你的断定,便可以发现相关的情形.这种工具在调试历程中是分外有效的.
可用下面这个类举路程序调试:
//: Assert.java
// Assertion tool for debugging
package com.bruceeckel.tools.debug;

public class Assert {
  private static void perr(String msg) {
    System.err.println(msg);
  }
  public final static void is_true(boolean exp) {
    if(!exp) perr("Assertion failed");
  }
  public final static void is_false(boolean exp){
    if(exp) perr("Assertion failed");
  }
  public final static void 
  is_true(boolean exp, String msg) {
    if(!exp) perr("Assertion failed: " + msg);
  }
  public final static void 
  is_false(boolean exp, String msg) {
    if(exp) perr("Assertion failed: " + msg);
  }
} ///:~
这个类只是简单地封装了布尔测试.假如失利,就显示出出错消息.在第9章,大家还会学习一个更高级的错误掌握工具,名为“违例掌握”.但在目前这种情形下,perr()办法已经可以很好地工作.
假如想利用这个类,可在自己的程序中加入下面这一行:
import com.bruceeckel.tools.debug.*;
如欲排除断定机制,以便自己能发行终究的代码,我们成立了第二个Assert类,但倒是在一个差别的包里:

//: Assert.java
// Turning off the assertion output 
// so you can ship the program.
package com.bruceeckel.tools;

public class Assert {
  public final static void is_true(boolean exp){}
  public final static void is_false(boolean exp){}
  public final static void 
  is_true(boolean exp, String msg) {}
  public final static void 
  is_false(boolean exp, String msg) {}
} ///:~
目前,假定将前一个import语句变成下面这个模样:
import com.bruceeckel.tools.*;
程序便不再显示出断言.下面是个例子:
//: TestAssert.java
// Demonstrating the assertion tool
package c05;
// Comment the following, and uncomment the
// subsequent line to change assertion behavior:
import com.bruceeckel.tools.debug.*;
// import com.bruceeckel.tools.*;

public class TestAssert {
  public static void main(String[] args) {
    Assert.is_true((2 + 2) == 5);
    Assert.is_false((1 + 1) == 2);
    Assert.is_true((2 + 2) == 5, "2 + 2 == 5");
    Assert.is_false((1 + 1) == 2, "1 +1 != 2");
  }
} ///:~
通过改变导入的package,我们可将自己的代码从调试版本变成终究的发行版本.这种技术可利用于任何种类的条件代码.
  以上是“<b>操作导入改变java行为</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .