微信号:infoqchina

介绍:有内容的技术社区媒体

里程碑:Java的JDK已经可以无警告编译通过

2015-03-06 12:01 InfoQ


OpenJDK,Java的开源参考实现(也是Oracle JDK的基础)已经达到了一个重要的里程碑。包含了类库代码的jdk仓库,在将要发布的JDK 9中已经消除了所有的编译警告,Joe Darcy和其他一些人领导Oracle工程师们在这上面耕耘了数月,也就此画上完美句号,这其中也包含了一些来自社区的贡献。


Java像其他编程语言,例如C一样,支持一种检查模式(linting mode),它可以对糟糕的代码样式和可能不安全的编码做法发出警告。包括的例子有,switch/case语句中是否有default处理,以及对Java原始类型的使用等。虽然检查产生的警告看起来比较温和,但是bug就有可能隐藏在这些被标注出来的代码背后。消除警告可以暴露真正的问题,其中一些问题还隐藏得很深。


OpenJDK团队解决这个问题的办法是,先消除一种类型的警告,然后再把这种警告设为致命错误(fatal error),这样以后带有这种警告的代码就无法提交到仓库中了。等到所有的警告类型都消除后,编译过程会打开-Xlint:all -Werror开关,这样编译JDK的时候,所有的警告都会变成致命错误。


最后,Darcy写了一篇博文,在文中,他给那些也希望用这种方法清理自己项目中的编译警告的Java开发者们提出了建议。您可以点击“阅读原文”查看这篇博文内容。



 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 大海胡说八道谈古龙 新版“美女与神兽” 一个通用的Java正则匹配工具 创业开发APP产品,别把自己搞得那么累! 【挑战赛第二天】Android赛区无人赢得5万头奖,谁人能破?