java

位置:IT落伍者 >> java >> 浏览文章

Eclipse使用中报错的分析


发布日期:2021年01月31日
 
Eclipse使用中报错的分析

Eclipse中报错要了解详细信息请使用xlint:unchecked重新编译的解决方案

遇到问题

用ant执行jasperreport的samples\charts示例的buildxml时无法编译提示错误如下

javac:

[javac] Compiling source files to E:\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然而编译器不会报错

如果你用的Ant使用buildxml编译的话可以右击buildxml文件

> 执行 > 构成和执行选择 参数在《程序参数》里面输入xlint:unchecked即可

找到buildxml里面类似的语句加上一句话

< ! Java Compile >

< target name=compile depends=init>

< javac srcdir=src destdir=${classdir}

deprecation=on encoding=WindowsJ debug=on includes=**/jp/**>

< compilerarg value=Xlint:unchecked/> `< ! 就是这句话!! >

< classpath refid=projectclasspath />

< /javac>

< /target>

自己的试验与结论

第一种

编译时带上参数source 使用方法

找到buildxml里面类似的语句加上一句话

< javac srcdir=${srcdir} destdir=${classesdir} >

< classpath refid=classpath/>

< compilerarg line=source /> `< ! 就是这句话!注意与第五种方式不同的是line标签而不是value! >

< /javac>

编译通过charts下的报表出现了!

第二种

使用@SupressWarnings(unchecked)注释:

在ChartsAppjava的main函数前加上了这个注释但是没有起作用提示错误依然是[javac] 注意 要了解详细信息请使用 Xlint:unchecked 重新编译怎么回事呢?

在一篇文章中找到了答案

在撰写本文时候javac并不支持@SuppressWarnings 的注解期望在Java 中得到支持

第三种

更改代码为泛型使用方式

原来的代码

Map parameters = new HashMap()

parametersput(MaxOrderID new Integer())

更改后的代码

Map< StringInteger> parameters = new HashMap< StringInteger> ()

parametersput(MaxOrderID new Integer())

或者

Map< ObjectObject> parameters = new HashMap< ObjectObject> ()

parametersput(MaxOrderID new Integer())

更改后顺利通过编译也能看到报表了!!

第四种

经验证无效

第五种

< javac srcdir=src destdir=${classdir}

deprecation=on encoding=WindowsJ debug=on includes=**/jp/**>

< compilerarg value=Xlint:unchecked/> `< ! 就是这句话!! >

< classpath refid=projectclasspath />

< /javac>

加上< compilerarg value=Xlint:unchecked/>出现警告不过编译顺利通过也能看到报表了!

编译提示如下

[javac] Compiling source files to E:\jiangcm\workspaceforictmyeclipse\jasperreports\demo\samples\charts

[javac] E:\jiangcm\workspaceforictmyeclipse\jasperreports\demo\samples\charts\ChartsAppjava:: 警告 [unchecked] 对作为普通类型 javautilMap 的成员的 put(KV) 的调用未经检查

[javac] parametersput(MaxOrderID new Integer())

[javac] ^

[javac] 警告

呵呵答案是丰富多彩的条条大道通罗马这次不仅解决了问题还找到了四种解决问题的方法

               

上一篇:实例讲解Struts原理与实践

下一篇:反向控制和面向切面编程在Spring的应用