A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张伟强 于 2012-7-29 16:40 编辑

当编译一个文件时,会提示如下信息:注意:*****.java 使用了未经检查或不安全的操作。
                            注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
谁能具体讲一下这个-Xlint:unchecked 的具体作用,以及这类问题产生的原因和解决方案?

4 个回复

倒序浏览
请继续看毕老师视频的框架集合部分,看完后会明白的。
回复 使用道具 举报
这是JDK1.5中在创建集合时,提出了泛型这一概念,即,你集合中要操作的数据类型,也就是说可以对集合里的数据进行检查。在jdk1.5以前,如果没有指定参数类型,则 JDK 1.5 编译器由于无法检查 给出的参数是否合乎要求,而报告 unchecked 警告,这并不影响运行。按照提示,编译是指定参数即可取消这样的警告。或者为其制定类型参数,比如说,你创建了一个ArrayList,你在这个集合中要进行操作的数据类型是String,你在创建集合时,就可以这样创建,ArrayList<String> al = new ArrayList<String>,这样,当你对集合进行相关操作时,如果你传入的参数不是String类型的话,就会在编译器给出错误提示,把可能出现在运行期的错误提到了编译期,把问题留给程序员,而不是用户。
回复 使用道具 举报
我记得这个在毕向东里面有讲到,好像是泛型这一块,你再去看看就清楚了。
回复 使用道具 举报
<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 警告


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马