一、遇到问题:
用ant执行jasperreport的samples\charts示例的build.xml时,无法编译,提示错误如下:
javac:
[javac] Compiling 2 source files to E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts
[javac] 注意: E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts\ChartsApp.java 使用了未经检查或不安全的操作。
[javac] 注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译。
二、查了一下资料,知道是泛型的原因,网上查到的解决方案主要有以下几种:
1.编译时带上参数-source 1.4
2.使用@SupressWarnings("unchecked")注释
3.更新你的代码,使用List<Object>. List<Object>的实例能接受任何类型的对象,就像是一个原型List。然而,编译器不会报错。
(以上三种方法来源:http://www.matrix.org.cn/resource/article/43/43634_java_generics.html)
4.如果你用的Ant,使用build.xml编译的话,可以右击build.xml文件,
--> 执行 --> 构成和执行,选择 参数,在《程序参数》里面输入-xlint:unchecked即可;
5.找到build.xml里面类似的语句,加上一句话:
<!-- Java Compile -->
<target name="compile" depends="init">
<javac srcdir="src" destdir="${classdir}"
deprecation="on" encoding="Windows-31J" debug="on" includes="**/jp/**">
<compilerarg value="-Xlint:unchecked"/> `<!-- 就是这句话!! -->
<classpath refid="project.class.path" />
</javac>
</target>
(以上两种方法来源:http://www.itwenku.com/java/12/47796.htm)
三、自己的试验与结论
第一种:
“编译时带上参数-source 1.4”使用方法:
找到build.xml里面类似的语句,加上一句话:
<javac srcdir="${src.dir}" destdir="${classes.dir}" >
<classpath refid="classpath"/>
<compilerarg line="-source 1.5"/> `<!-- 就是这句话!注意与第五种方式不同的是line标签而不是value! -->
</javac>
编译通过,charts下的报表出现了!
第二种:
“使用@SupressWarnings("unchecked")注释”:
在ChartsApp.java的main函数前加上了这个注释,但是没有起作用,提示错误依然是“[javac] 注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译。”,怎么回事呢?
在一篇文章中找到了答案:
http://www.matrix.org.cn/resource/article/43/43864_Generic_Types.html
在撰写本文时候,javac并不支持@SuppressWarnings 的注解。期望在Java 5.1中得到支持。
第三种:
更改代码为泛型使用方式:
原来的代码:
Map parameters = new HashMap();
parameters.put("MaxOrderID", new Integer(12500));
更改后的代码:
Map<String,Integer> parameters = new HashMap<String,Integer> ();
parameters.put("MaxOrderID", new Integer(12500));
或者:
Map<Object,Object> parameters = new HashMap<Object,Object> ();
parameters.put("MaxOrderID", new Integer(12500));
更改后,顺利通过编译,也能看到报表了!!
第四种:
经验证无效;
第五种:
<javac srcdir="src" destdir="${classdir}"
deprecation="on" encoding="Windows-31J" debug="on" includes="**/jp/**">
<compilerarg value="-Xlint:unchecked"/> `<!-- 就是这句话!! -->
<classpath refid="project.class.path" />
</javac>
加上"<compilerarg value="-Xlint:unchecked"/>" 后,出现"警告",不过编译顺利通过,也能看到报表了!
编译提示如下:
[javac] Compiling 2 source files to E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts
[javac] E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts\ChartsApp.java:115: 警告: [unchecked] 对作为普通类型 java.util.Map 的成员的 put(K,V) 的调用未经检查
[javac] parameters.put("MaxOrderID", new Integer(12500));
[javac] ^
[javac] 1 警告
呵呵,答案是丰富多彩的,条条大道通罗马,这次不仅解决了问题,还找到了四种解决问题的方法。
参考资料:
1.J2SE 5.0中的泛型
作者:Budi Kurniawan
http://www.matrix.org.cn/resource/article/43/43634_java_generics.html
2.Eclipse中报jsp中有错误“要了解详细信息,请使用-xlint:unchecked重新编译”,具体在菜单上怎么操作?
http://www.itwenku.com/java/12/47796.htm
3.泛型类型,第一部分
作者: David Flanagan
http://www.matrix.org.cn/resource/article/43/43864_Generic_Types.html
4.有关ant的faq
http://www.blogjava.net/luckyrobbie/articles/24117.html
Q. How to pass -Xlint or -Xlint:unchecked to 1.5 javac task?
A: pass it as compilerarg nested <compilerarg> to specify.
<compilerarg value="-Xlint"/>
<!-- or -->
<compilerarg value="-Xlint:unchecked"/>
分享到:
相关推荐
在Java编程中,IDE(如MyEclipse)会通过颜色编码来标识代码中的不同状态,其中黄色警告通常意味着代码可能存在潜在的问题或不建议使用的特性,但并不一定导致编译错误。这些警告旨在帮助开发者提高代码质量和性能,...
为了解决spring整合cxf,xfire遇到的jar包冲突问题,将XmlSchema.1.1.1.jar和xfire-all1.2.6.jar修改后进行了重新编译打包
DXperience 8.3.2 重新编译版,最新版本,经测试,无任何问题。
您可以在上下载编译的二进制文件。当前,构建是手动完成的,并不是每个发行版都可以使用每个平台(例如Windows / Mac / Linux)。 另一种选择是使用pub global activate blake 。 用法 使用blake init在当前目录中...
`compile` depends="init"> ${src.dir}" destdir="${classes.dir}" debug="on" includeantruntime="false"> 编译完成 <!-- 打包 jar 文件 --> ${dist.dir}/sample.jar" basedir="${classes.dir}" ...
错误信息指出,在编译`ChartsApp.java`文件时,检测到未检查的类型转换,建议使用`-Xlint:unchecked`选项来获取更详细的警告信息。这一错误通常发生在以下几种情况: 1. **代码中使用了未经检查的转换或集合**:如...
java泛型源码泛型JavaAssignment03 我的Java中级编程类的第三次...注意:使用-Xlint:unchecked重新编译以获取详细信息。 您可以根据需要定义新的类,以使您的程序按要求运行,但是您不能修改名为Proj03的类的类定义。
java泛型源码泛型JavaAssignment02 我的Java中级编程类的第二个任务。...注意:使用-Xlint:unchecked重新编译以获取详细信息。 您可以根据需要定义新的类,以使程序按要求运行,但不能修改名为Proj02的类的类定义。
使用DOS命令进入InstallCert.java 存放目录 运行 javac InstallCert.java 将InstallCert.java 编译成 .class文件 在运行 java InstallCert smtp.xyz.com:465【其中xyz是要使用的mail,例如:smtp.126.com】【465是...
现代化Maven插件 Modernizer Maven插件可以检测对旧版API的使用,这些旧版API...要运行Modernizer,请将以下内容添加到pom.xml中的节中,然后调用mvn modernizer:modernizer : < groupId>org.gaul < artifactId>
1. **使用-Xlint:unchecked 重新编译**:在编译命令行中添加`-Xlint:unchecked`选项,可以显示所有未检查的转换警告,这样可以帮助开发者识别并修正问题。例如: ``` javac -Xlint:unchecked YourFile.java ``` ...
为了解决这个问题,可以考虑使用`onSaveInstanceState()`和`onRestoreInstanceState()`来保存和恢复AsyncTask的状态,或者在新Activity中重新执行AsyncTask。 AsyncTask的执行顺序也是一个复杂的问题。在早期版本中...
unity2019、unity2020、unity2021打包安卓需要NDKr19.0.93,而官方已经不提供NDKr19.0.53下载,只有无法支持Unity的NDKr19.2.5b,因此我这个是绝对、完全、完美支持Unity的
如果初始执行失败,请尝试-Xlint:unchecked在编译选项中。游戏规则刺客的游戏方式如下。 玩家从一群想玩游戏的人开始。 例如,假设我们有五个人在玩,他们的名字分别是Joe,Sally,Jim,Carol和Chris。 建立了一个...
通过分析 MyNotepad v1.0 的源码,我们可以了解到 Java GUI 编程的基本结构,以及如何利用 Java AWT 和 Swing 库创建桌面应用。同时,这也是一个很好的实践案例,展示了如何将基本的 Java 类和接口组合起来实现功能...
<br>一、用ant编译源码(所有源文件及目录结构请下载) <br>C:\cs>ant compile Buildfile: build.xml <br>compile: [mkdir] Created dir: C:\cs\build [javac] Compiling 60 source files to C:\cs...
在使用 javac 编译时,警告可以被正确抑制,但在 Eclipse 编译器下,警告并未被消除。这可能是因为两个编译器在解析和应用警告抑制规则时存在差异。 首先,我们需要了解 Java 编译器和 Eclipse 编译器的基础知识。...
xlint-崇高 Sublime Text2 的构建系统 它是的修改版本 先决条件 NodeJS 必须安装在您的系统上,并且您必须能够从命令行运行“node”。 安装 在您的控制台中,转到 Sublime Text 的 Packages 文件夹: Linux: ~/....
要开始使用 `xlint-csslint`,首先确保你的系统已经安装了 Node.js 和 npm(Node 包管理器)。然后,你可以通过 npm 来安装这个模块: ```bash $ npm install xlint-csslint ``` 安装完成后,你可以在你的项目中...