Xlint以及Java Lint 选项
Java Lint 选项
Java 编译器的选项包括所谓的标准选项和非标准选项。标准选项是指在当前版本的开发环境中支持,且在未来版本中也将被支持的选项。常用的标准选项比如
-classpath 以及 -d 等等。
非标准选项是在当前版本的开发环境中支持,但不能保证将来一定会继续支持的选项。非标准选项都由 -X 开头,比如我们这里所关心的 Java Lint
选项都由 -Xlint 开头。需要先说明的是,单纯的选项 -X 本身是一个标准选项,作用是显示关于非标准选项的信息。
这些选项都是非标准选项,如有更改,恕不另行通知。
~]$ javac -X
-Xlint Enable recommended warnings //启用建议的警告
-Xlint:{all,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs,-cast,-classfile,-deprecation,-dep-ann,-divzero,-empty,-fallthrough,-finally,-options,-overrides,-path,-processing,-rawtypes,-serial,-static,-try,-unchecked,-varargs,none} Enable or disable specific warnings //启用或禁用特定的警告
-Xbootclasspath/p:<path> Prepend to the bootstrap class path, //置于引导类路径之前
-Xbootclasspath/a:<path> Append to the bootstrap class path // 置于引导类路径之后
-Xbootclasspath:<path> Override location of bootstrap class files //覆盖引导类文件的位置
-Djava.ext.dirs=<dirs> Override location of installed extensions //覆盖安装的扩展目录的位置
-Djava.endorsed.dirs=<dirs> Override location of endorsed standards path //覆盖签名的标准路径的位置
-Xmaxerrs <number> Set the maximum number of errors to print //设置要输出的错误的最大数目
-Xmaxwarns <number> Set the maximum number of warnings to print //设置要输出的警告的最大数目
-Xstdout <filename> Redirect standard output,//重定向标准输出
-Xprint Print out a textual representation of specified types
-XprintRounds Print information about rounds of annotation processing
-XprintProcessorInfo Print information about which annotations a processor is asked to process
-Xprefer:{source,newer} Specify which file to read when both a source file and class file are found for an implicitly compiled class
-Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files
These options are non-standard and subject to change without notice.
~]$
我们依次来看看其中涉及 lint 的选项:
-Xlint
启用所有警告。该选项相当于 -Xlint:all 选项。相反,关闭所有警告的选项为 -Xlint:none。
-Xlint:unchecked
启用对所谓的未经检查的转换(unchecked warning)的警告。这个警告涉及 JDK 5.0 中的新特性——范型(Generic
Type),这绝对是另外一个故事了。有兴趣的话,可以在 Internet 上搜索到很多关于范型的文章。
-Xlint:path
当发现不存在的路径或者目录时给出警告,比如标准选项中的类路径(classpath),源代码路径(sourcepath)等等。
-Xlint:serial
当在可序列化的类中没有发现 serialVersionUID 的定义时,给出警告。
Xlint:finally
当发现 finally 子句无法正常结束的情况时给出警告。比如下面这段代码:
try {
} finally {
for (;;);
}
-Xlint:fallthrough
当在 switch 语句块中发现 fall-through 的情形时给出警告。这里所说的 fall-through 情形指的是在
switch语句块中,除了最后一个
case 之外的其它 case 中没有包含 break 语句,导致执行代码时从一个 case 直接穿过执行到了下一个 case 中。比如下面这段代码:
switch (color) {
case GREEN:
System.out.println("green");
// 没有 break 语句;fall-through
case RED:
System.out.println("red");
break;
case YELLOW:
System.out.println("yellow");
-Xlint:deprecation
显示关于使用了过时的 API 的详细信息。这个选项等同于一个我们熟悉的标准选项,即 -deprecation 选项。相对其它 lint
选项而言,该选项的特别之处在于,即使你关闭了它,编译器仍然会简单地提醒你某个类中使用了过时的 API。只是启用该项警告时,显示的信息将更详细而以。
上面提到的这些 lint 选项中的警告名称(冒号后面的部分),可以加以组合,从而有选择的开启或者关闭特定的一组 lint 警告选项,比如
-Xlint:deprecation,
finally 表示开启 deprecation 和 finally 警告。还可以在警告名称前加上"-"表示关闭该项警告,比如
-Xlint:all,-unchecked 表示开启除了 unchecked 之外的所有警告。
关于 Java 编译器命令的完整参考请见 javac - Java programming language
compiler<http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javac.html>。
http://spaces.msn.com/members/stephensuen
http://groups.google.com/group/programmercafe
Xlint以及Java Lint 选项的更多相关文章
- idea 右键无java class选项
项目中新建module之后,要在该目录下新增java Class文件,右键——>New发现无Java Class选项. File –Project Structure或者ctrl+alt+shi ...
- IDEA右键新建时没有Java Class选项
今天在IDEA中新建了一个maven工程,但是在我想要新建Class时发件右键菜单里竟然没有Java Class选项!如下图所示: 如上图红圈所示,我们可以根据对项目的任意目录进行这五种目录类型标注, ...
- eclipse中的项目运行时不出现run as→java application选项
eclipse中的运行java project时不出现run as→java application选项? 解决方案☞必须有正确的主方法,即public static void main(String ...
- Intelidea右键新建选项没有Java class选项
Intelidea创建好项目之后,右键新建Java class的时候发现没有改选项,只有以下几个选项 把sec目录设为源码目录,首先打开Project Structure
- intellij idea 2019 右键包新建文件是没有java Class选项
今天要测试一个技术点于是新建了一个springboot工程, 在新建文件的时候发现右键后java class文件选项不见了. 以前真的没有碰到这种问题, 感觉很是意外于是百度Google后找到了解决办 ...
- idea 项目java版本选项位置
藏这里了 还有一个
- Java魔法堂:注解用法详解——@SuppressWarnings
一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @SuppressWar ...
- Java魔法堂:注解用法详解——@SuppressWarnings(转)
一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @SuppressWar ...
- 知识点:java 注解 @SuppressWarnings
前言: 简介:java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一.可以标注在类.字段.方法.参数.构造方法,以及局部变量上.作用:告诉编译器忽略指定的 ...
随机推荐
- [汇编语言]-第八章 div指令,伪指令dd,dup
1- div除法指令 (1) 除数: 有8位和16位两种,在一个寄存器或内存单元中. (2) 被除数: 默认放在AX和DX或AX中 除数为8位, 被除数为16位, 默认在AX中存放. 除数为16位, ...
- Echart 官网给的一个直观的事例
附录:一个直观的事例 查看更多实例 example,或者使用这个demo 或 ECharts单一文件引入作为你的模板 // 图表实例化------------------ // srcipt标签式引入 ...
- codeforces 518C. Anya and Smartphone
C. Anya and Smartphone time limit per test 1 second memory limit per test 256 megabytes input standa ...
- UVA 816 Abbott’s Revenge
bfs求最短路,递归打印最短路的具体路径: 难点: 当前状态和转弯方式很复杂,要仔细处理: 递归打印:用一个数组存储路径中结点的前一个节点,递归查找 (bfs无法确定下一个结点,但对于没一个结点,它的 ...
- C语言学习笔记frist---输入两个数比较大小
C#学习中,问道艰辛,今自C学起,第一个函数学习:输入两个数比较大小,仅作练习: #include "stdafx.h" #include<stdio.h> // 包含 ...
- Oracle EBS-SQL (MRP-6):检查MRP计划运行报错原因之超大数据查询1.sql
/*逐一运行检查计划运行超大数据*/ ---------------------------------------------------- /*查询-1*/ select plan_id, 'C ...
- VS2010中添加dll目录
RT,比如用VS写QT,用qmake生成的项目,需要在项目属性里设置:调试->环境,path=%path%;C:\Qt\4.8.5\bin 这样省的每次都要把一堆dll复制到debug/rele ...
- SharedPreference对象及其xml文件
SharedPreferences对象----->getXXX SharedPreferences.Editor对象---->putXXX
- git 拉取远程分之到本地
git checkout -b newbranch_name --track origin/feature/newbranch_name 如果遇到类似: fatal: git checkout: up ...
- [Leetcode][Python]48: Rotate Image
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 48: Rotate Imagehttps://leetcode.com/pr ...