在 C 或 C++ 中,可以通过预处理语句来实现条件编译。代码如下:

#define DEBUG
#IFDEF DEBUUG
/*
code block 1
*/
#ELSE
/*
code block 2
*/
#ENDIF

而Java中却没有预处理,宏定义这些东西,而有时在一些项目中,我们可能需要条件编译。那么,在 Java 中,该如何实现条件编译呢?

办法是有的:定义一个 final 的变量,然后在 if 语句用中它隔开代码。

public class Hello {
public static void main(String[] args) {
final boolean DEBUG = true;
if (DEBUG) {
System.out.println("Hello, world!");
} else {
// some code
}
}
}

因为编译器会对代码进行优化,对于条件永远为 false 的语句,Java 编译器将不会对其生成字节码。

如何用Java实现条件编译的更多相关文章

  1. 如何用Java编写一段代码引发内存泄露

    本文来自StackOverflow问答网站的一个热门讨论:如何用Java编写一段会发生内存泄露的代码. Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码.这个问题我一点思路都没有, ...

  2. java没有条件编译

    摘自http://maosidiaoxian.iteye.com/blog/1290740 条件编译绝对是一个好东西.如在C或CPP中,可以通过预处理语句来实现条件编译.代码如下: #IFDEF DE ...

  3. Spring进阶—如何用Java代码实现邮件发送(一)

    相关文章: <Spring进阶—如何用Java代码实现邮件发送(二)> 在一些项目里面如进销存系统,对一些库存不足发出预警提示消息,招聘网站注册用户验证email地址等都需要用到邮件发送技 ...

  4. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  5. 如何用Java实现DVD的一些功能

    /* 这个代码中涉及到的知识点很多,大家要慢慢悟!! */ import java.util.*; import java.text.*; class DvdSet { //定义三个属性 String ...

  6. 如何用java写出无副作用的代码

    搞java的同学们可能对无副作用这个概念比较陌生,这是函数式编程中的一个概念,无副作用的意思就是: 一个函数(java里是方法)的多次调用中,只要输入参数的值相同,输出结果的值也必然相同,并且在这个函 ...

  7. 如何用Java解析CSV文件

    首先看一下csv文件的规则: csv(Comma Separate Values)文件即逗号分隔符文件,它是一种文本文件,可以直接以文本打开,以逗号分隔.windows默认用excel打开.它的格式包 ...

  8. 如何用Java语言向串口读写数据

    原作者:赛迪网作者 shihuchen ,我在他的基础上进行了部分修改 [赛迪网讯]串口, RS-232-C(又称EIA RS-232-C,以下简称RS232)是在1970年由美国电子工业协会(EIA ...

  9. 如何用java实现使用电子邮件控制你的电脑

    上两天看到一篇文章,用python实现电子邮件控制电脑的有趣的小程序 python 实现微信控制电脑     python版的视频教程 但是苦于自己没接触过python于是想到能不能用java实现,于 ...

随机推荐

  1. Android根据内网外网连接情况配置服务器访问IP

    新项目的app,可通过内网和外网的服务器ip进行请求访问,但是客户提供了专业终端,终端在wifi情况下走外网内网都可以,但关闭wifi则只能走4G专网,也就是只能走内网. 可前往我的小站查看:Andr ...

  2. Oracle 11g 数据库 expdp/impdp 全量导入导出

    从一个用户导出导入到另一个用户 问题 环境:oracle 11g; redhat 6 usera是具有DBA权限,密码为usera 全量导出usera用户下的所有内容,并导入到新建的userb用户 解 ...

  3. python命令行传入参数

    1.sys import sys a=eval(sys.argv[1])b=eval(sys.argv[2]) print(a+b) 1    2    3    4    5    6 evel() ...

  4. keep-alive 实现从列表页到详情页,然后再回到列表页并保持原来列表页的页码数,并且只刷新数据

    思路: keep-alive应用场景介绍 <keep-alive> 不会在函数式组件中正常工作,因为它们没有缓存实例.结合router,缓存部分页面 activated 和 deactiv ...

  5. h2的时间类型和函数

    H2时间类型: (时间)TIME: 格式为 hh:mm:ss.对应到Java类型:java.sql.Time. (日期)DATE: 格式为 yyyy-MM-dd.对应到Java类型: java.sql ...

  6. C语言函数库分类

  7. Spark获取DataFrame中列的几种姿势--col,$,column,apply

    1.doc上的解释(https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Column.html)  df("c ...

  8. org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'

    原因:浏览器和驱动版本不匹配 https://npm.taobao.org/mirrors/chromedriver

  9. 0.9.0.RELEASE版本的spring cloud alibaba sentinel实例

    sentinel即哨兵,相比hystrix断路器而言,它的功能更丰富.hystrix仅支持熔断,当服务消费方调用提供方发现异常后,进入熔断:sentinel不仅支持异常熔断,也支持响应超时熔断,另外还 ...

  10. 利用postman生成各种编程语言的代码

    原文来源:https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/ 在Post ...