日期: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版本.之所以叫作“断定机制”,是由于我们可以说“它应当为真”大概“它应当为假”.假如语句差别意你的断定,便可以发现相关的情形.这种工具在调试历程中是分外有效的.
可用下面这个类举路程序调试:
这个类只是简单地封装了布尔测试.假如失利,就显示出出错消息.在第9章,大家还会学习一个更高级的错误掌握工具,名为“违例掌握”.但在目前这种情形下,perr()办法已经可以很好地工作.//: 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); } } ///:~
假如想利用这个类,可在自己的程序中加入下面这一行:
import com.bruceeckel.tools.debug.*;
如欲排除断定机制,以便自己能发行终究的代码,我们成立了第二个Assert类,但倒是在一个差别的包里:
目前,假定将前一个import语句变成下面这个模样://: 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 com.bruceeckel.tools.*;
程序便不再显示出断言.下面是个例子:
通过改变导入的package,我们可将自己的代码从调试版本变成终究的发行版本.这种技术可利用于任何种类的条件代码.//: 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"); } } ///:~
以上是“<b>操作导入改变java行为</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论