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之一.可以标注在类.字段.方法.参数.构造方法,以及局部变量上.作用:告诉编译器忽略指定的 ...
随机推荐
- [转]Linux下转换字符集(UTF8转换)
今天在Linux 下使用 Iconv 命令转换一个UTF8文件时,总是转换不成功.提示: iconv: 未知 0 处的非法输入序列 后来使用 man iconv 查看,还是没发现异常,因为命令格式都是 ...
- gdal读写图像分块处理(精华版)
一.gdal进行数据操作在安装好gdal后,即可调用gdal库中的函数.(需要包含的头文件:gdal_priv.h)1.打开数据集使用gdal库进行数据(影像)操作的第一步就是打开一个数据集.对于“数 ...
- vs2005的MFC程序在64位机上不能运行
出现上述错误大多因为该机上没有安装vs2005程序,vs2005要运行需要一些必要的文件,没有添加到你发布的可执行文件目录下,所以程序不能运行. 解决方法: 安装目录\Microsoft Visual ...
- MySQL_数据分页查询(limit用法)
取前5条数据 select * from table_name limit 0,5 或 select * from table_name limit 5 取第11条到第15条数据,共5条 select ...
- 深入理解MFC子类化
子类化,通俗来讲就是用自己的窗口处理函数来处理特定消息,并将自己其他消息还给标准(默认)窗口处理函数.在SDK中,通过SetWindowLong来指定一个自定义窗口处理函数:SetWindowLong ...
- xcode 5与ios 7的屏幕适配问题
#define DEVICE_IS_IPHONE5 ([[UIScreen mainScreen] bounds].size.height == 568) float height = DEVICE_ ...
- redhat enterprise 6.3 x86_64 上安装VirtualBox详细教程
这个教程真难找..... 安装第一步遇到的问题就是不能使用yum安装包,这是由于redhat是收费版,所以需要更新yum源列表,具体可以参考 http://www.cnblogs.com/tina-s ...
- checkbook全选/反选/全不选
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...
- H面试程序(12): 输出字符串中第一个只出现一次的字母
题目描述: 若字符串str为'' sbdddsbfc'',则输出 f; 若字符串str为''aabbccdd'',则输出:字符串str中的字符都出现两次以上 #include <stdio.h& ...
- Flash Recovery Area空间不足导致DB不能打开或hang住处理方法
当归档目录设置在闪回恢复区,并且闪回恢复区又满了的情况下, DB 就会无法归档而hang住或者无法打开. 这种情况下打开数据库会遇到如下错误信息: SQL> select status from ...