生活随笔
收集整理的這篇文章主要介紹了
自然语言交流系统 phxnet团队 创新实训 个人博客 (二)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
因?yàn)轫?xiàng)目用的到條件編譯,遂專門記載:
眾所周知在C和CPP中可以通過預(yù)處理語句來實(shí)現(xiàn)條件編譯,但是在java中沒有預(yù)處理語句,我們?cè)撊绾螌?shí)現(xiàn)條件編譯呢?
這是一個(gè)簡單的demo
Java代碼?? public?class?Hello?{??????public?static?void?main(String[]?args)?{??????????System.out.println("Hello,?world!");??????}??}?? 保存為Hello.java并編譯,得到一個(gè)class文件,并且觀察到文件大小是417字節(jié)。然后我們對(duì)這個(gè)文件進(jìn)行反編譯,用jd-gui。得到代碼如下:?
Java代碼??
import?java.io.PrintStream;????public?class?Hello??{????public?static?void?main(String[]?paramArrayOfString)????{??????System.out.println("Hello,?world!");????}??}?? 得到這個(gè)有什么用呢??
現(xiàn)在我們?cè)賮韺?duì)源代碼進(jìn)行修改,修改后的代碼如下。?
Java代碼??
public?class?Hello?{??????public?static?void?main(String[]?args)?{??????????if(false)?{??????????????System.out.println("Hello,?world!");??????????}??????}??} ? 進(jìn)行編譯,這時(shí)我們?cè)倏此拇笮?#xff0c;只有255字節(jié)。怎樣?想到什么了吧?沒錯(cuò),編譯器會(huì)對(duì)代碼進(jìn)行優(yōu)化,對(duì)于條件永遠(yuǎn)為false的語句,JAVA編譯器將不會(huì)對(duì)其生成字節(jié)碼。下面我們?cè)賮韺?duì)該class文件進(jìn)行反編譯,果然代碼如下:?
Java代碼??
public?class?Hello??{????public?static?void?main(String[]?paramArrayOfString)????{????}??}??
利用JAVA編譯的這一優(yōu)化機(jī)制,我們就可以實(shí)現(xiàn)JAVA的條件編譯了。?
?
Java代碼??
public?class?Hello?{??????public?static?void?main(String[]?args)?{??????????if(false)?{??????????????System.out.println("Hello,?world!");??????????}??????}??}??
定義一個(gè)final的變量,然后再在if語句中使用。代碼如下:?
Java代碼??
public?class?Hello?{??????public?static?void?main(String[]?args)?{??????????final?boolean?DEBUG?=?true;??????????if(DEBUG)?{??????????????System.out.println("Hello,?world!");??????????}??????}??}??
當(dāng)條件編譯使用得多時(shí),上面將極不利于代碼的修改及維護(hù),這時(shí)就可以用一種更為靈活的方法。定義一個(gè)靜態(tài)類,里面專門定義用來控制條件編譯的變量。然后再在具體的代碼中導(dǎo)入該類,使用這些final變量。代碼如下:
Java代碼??
public?class?DebugConfig?{??????public?static?final?boolean?BLUETOOTH_DEBUG?=?false;??????public?static?final?boolean?WIRELESS_DEBUG?=?false;??}?? ?
Java代碼??
if?(?DebugConfig.BLUETOOTH_DEBUG)?{??????}??
總結(jié)
以上是生活随笔為你收集整理的自然语言交流系统 phxnet团队 创新实训 个人博客 (二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。