Eclipse中报错
要了解详细信息
请使用
xlint:unchecked重新编译
的解决方案
一遇到问题
用ant执行jasperreport的samples\charts示例的buildxml时无法编译提示错误如下
javac:
[javac]CompilingsourcefilestoE:\jiangcm\workspaceforictmyeclipse\jasperreports\demo\samples\charts
[javac]注意E:\jiangcm\workspaceforictmyeclipse\jasperreports\demo\samples\charts\ChartsAppjava使用了未经检查或不安全的操作
[javac]注意要了解详细信息请使用Xlint:unchecked重新编译
二查了一下资料知道是泛型的原因网上查到的解决方案主要有以下几种
编译时带上参数source
使用@SupressWarnings(unchecked)注释
更新你的代码使用List<Object>List<Object>的实例能接受任何类型的对象就像是一个原型List然而编译器不会报错
(以上三种方法来源l)
如果你用的Ant使用buildxml编译的话可以右击buildxml文件
>执行>构成和执行选择参数在《程序参数》里面输入xlint:unchecked即可;
找到buildxml里面类似的语句加上一句话
<!JavaCompile>
<targetname=compiledepends=init>
<javacsrcdir=srcdestdir=${classdir}
deprecation=onencoding=WindowsJdebug=onincludes=**/jp/**>
<compilerargvalue=Xlint:unchecked/>`<!就是这句话!!>
<classpathrefid=projectclasspath/>
</javac>
</target>
(以上两种方法来源)
三自己的试验与结论
第一种
编译时带上参数source使用方法
找到buildxml里面类似的语句加上一句话
<javacsrcdir=${srcdir}destdir=${classesdir}>
<classpathrefid=classpath/>
<compilerargline=source/>`<!就是这句话!注意与第五种方式不同的是line标签而不是value!>
</javac>
编译通过charts下的报表出现了!
第二种
使用@SupressWarnings(unchecked)注释
在ChartsAppjava的main函数前加上了这个注释但是没有起作用提示错误依然是[javac]注意要了解详细信息请使用Xlint:unchecked重新编译怎么回事呢?
在一篇文章中找到了答案
l
在撰写本文时候javac并不支持@SuppressWarnings的注解期望在Java中得到支持
第三种
更改代码为泛型使用方式
原来的代码
Mapparameters=newHashMap();
parametersput(MaxOrderIDnewInteger());
更改后的代码
Map<StringInteger>parameters=newHashMap<StringInteger>();
parametersput(MaxOrderIDnewInteger());
或者
Map<ObjectObject>parameters=newHashMap<ObjectObject>();
parametersput(MaxOrderIDnewInteger());
更改后顺利通过编译也能看到报表了!!
第四种
经验证无效
第五种
<javacsrcdir=srcdestdir=${classdir}
deprecation=onencoding=WindowsJdebug=onincludes=**/jp/**>
<compilerargvalue=Xlint:unchecked/>`<!就是这句话!!>
<classpathrefid=projectclasspath/>
</javac>
加上<compilerargvalue=Xlint:unchecked/>后出现警告不过编译顺利通过也能看到报表了!
编译提示如下
[javac]CompilingsourcefilestoE:\jiangcm\workspaceforictmyeclipse\jasperreports\demo\samples\charts
[javac]E:\jiangcm\workspaceforictmyeclipse\jasperreports\demo\samples\charts\ChartsAppjava::警告[unchecked]对作为普通类型javautilMap的成员的put(KV)的调用未经检查
[javac]parametersput(MaxOrderIDnewInteger());
[javac]^
[javac]警告
呵呵答案是丰富多彩的条条大道通罗马这次不仅解决了问题还找到了四种解决问题的方法
参考资料
JSE中的泛型
作者BudiKurniawan
l
Eclipse中报jsp中有错误要了解详细信息请使用xlint:unchecked重新编译具体在菜单上怎么操作?
泛型类型第一部分
作者:DavidFlanagan
l
有关ant的faq
QHowtopassXlintorXlint:uncheckedtojavactask?
A:passitascompilerargnested<compilerarg>tospecify
<compilerargvalue=Xlint/>
<!or>
<compilerargvalue=Xlint:unchecked/>