Lint (java 使用或覆盖了已过时的 API)
来源:互联网 发布:linux安装多个jdk版本 编辑:程序博客网 时间:2024/05/29 12:51
Java Lint 工具
Stephen Suen
Copyright © 2005 Stephen Suen. All rights reserved.
如果你在编译 Java 程序时,碰到类似"注意: 要了解详细信息,请使用 -Xlint:deprecation 重新编译"这样的提示,而且你对选项 -Xlint
感到困惑的话,本文或许会带给你一些有趣且有用的信息。
本文的最新版本将发布在程序员咖啡馆网站上(建设中)。
- 目录
- 1. 简介
- 2. Lint
- 3. Java Lint 选项
1. 简介
如果你已经开始使用 JDK 1.5(或者称为 JDK 5.0),那么你很可能在编译时,
注意: E:\sandbox\src\DefaultController.java 使用或覆盖了已过时的 API。注意: 要了解详细信息,请使用 -Xlint:deprecation 重新编译。
或者这个:
注意: E:\sandbox\src\DefaultController.java 使用了未经检查或不安全的操作。注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译。
这些警告不难理解。如果愿意,
2. Lint
在介绍这些关于警告的选项前,我们先看看 lint 究竟是什么。在英文中,lint 是指纠缠在一起的细小纤维或者绒毛,
在 Unix 中,实用工具 lint(1) 用于在对程序编译的过程中,对程序进行更为细致的额外检查,
现在我们至少对选项中的 "lint" 有了一些有趣的认识了,记住这个词应该问题不大了。随后,
3. Java Lint 选项
Java 编译器的选项包括所谓的标准选项和非标准选项。-
以及 -d
等等。
非标准选项是在当前版本的开发环境中支持,-X
开头,比如我们这里所关心的 Java Lint 选项都由 -Xlint 开头。需要先说明的是,单纯的选项 -X
本身是一个标准选项,作用是显示关于非标准选项的信息。
E:\>javac -X -Xlint 启用建议的警告 -Xlint:{all,deprecation,unchecked,fallthrough,path, serial,finally,-deprecation,-unchecked,-fallthrough,- path,-serial,-finally} 启用或禁用特定的警告 -Xbootclasspath/p:<路径> 置于引导类路径之前 -Xbootclasspath/a:<路径> 置于引导类路径之后 -Xbootclasspath:<路径> 覆盖引导类文件的位置 -Djava.ext.dirs=<目录> 覆盖安装的扩展目录的位置 -Djava.endorsed.dirs=<目录> 覆盖签名的标准路径的位置 -Xmaxerrs <编号> 设置要输出的错误的最大数目 -Xmaxwarns <编号> 设置要输出的警告的最大数目 -Xstdout <文件名> 重定向标准输出这些选项都是非标准选项,如有更改,恕不另行通知。
我们依次来看看其中涉及 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 { } catch (Exception e) {} 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-throughcase RED:System.out.println("red");break;case YELLOW:System.out.println("yellow");}
-Xlint:deprecation
显示关于使用了过时的 API 的详细信息。这个选项等同于一个我们熟悉的标准选项,即
-deprecation
选项。相对其它 lint 选项而言,该选项的特别之处在于,即使你关闭了它,编译器仍然会简单地提醒你某个类中使用了过时的 API。只是启用该项警告时,显示的信息将更详细而以。
上面提到的这些 lint 选项中的警告名称(冒号后面的部分),可以加以组合,-Xlint:deprecation, finally
表示开启 deprecation 和 finally 警告。还可以在警告名称前加上"-"表示关闭该项警告,比如 -Xlint:all,-unchecked
表示开启除了 unchecked 之外的所有警告。
关于 Java 编译器命令的完整参考请见 javac - Java programming language compiler。
- Lint (java 使用或覆盖了已过时的 API)
- JAVA 使用或覆盖了已过时的 API 对照表
- JAVA 使用或覆盖了已过时的 API 对照表
- 注: 某些输入文件使用或覆盖了已过时的 API。 android studio
- 注: 某些输入文件使用或覆盖了已过时的 API。 android studio
- 【已解决】Android Studio编译OsmAnd出现警告:GeoPointParserUtil.java使用或覆盖了已过时的 API。有关详细信息请使用-Xlint:deprecation重新编
- Sqoop-1.4.6 mysql数据导出到HDFS提示;注: java使用或覆盖了已过时的 API。关详细信息, 请使用 -Xlint:deprecation 重新编译。
- 导入工程后出现“注: 某些输入文件使用或覆盖了已过时的 API”的一种解决办法
- Android Studio 错误提示 注: 某些输入文件还使用或覆盖了已过时的 API。
- 导入项目运行报错:某些输入文件使用或覆盖了已过时的 API……
- Android studio打包应用程序出现 '注: 某些输入文件使用或覆盖了已过时的 API'
- Ant编译问题四:****使用或覆盖已过时的API
- Error:注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
- android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。 注
- android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。 注
- android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。
- android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。 注
- android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。 注
- ScheduledThreadPoolExecutor实现原理
- 黑马程序员——IO--Input和Output基础
- Json简介
- 同步和异步
- 基于HBase Hadoop 分布式集群环境下的MapReduce程序开发
- Lint (java 使用或覆盖了已过时的 API)
- Android中View大小的确定过程
- uva 1588 换挡
- 1064. Complete Binary Search Tree (30)
- IOS AudioSession
- 筛法思想--七夕节
- java 二维码生成与解析代码实现,程序源码下载可用
- 如何向GLSL中传入多个纹理
- linux驱动开发--I/O内存的访问流程