黑马程序员技术交流社区

标题: 编译一个文件时报出如下信息怎么回事? [打印本页]

作者: 张伟强    时间: 2012-7-29 10:09
标题: 编译一个文件时报出如下信息怎么回事?
本帖最后由 张伟强 于 2012-7-29 16:40 编辑

当编译一个文件时,会提示如下信息:注意:*****.java 使用了未经检查或不安全的操作。
                            注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
谁能具体讲一下这个-Xlint:unchecked 的具体作用,以及这类问题产生的原因和解决方案?
作者: 韦念欣    时间: 2012-7-29 10:18
请继续看毕老师视频的框架集合部分,看完后会明白的。
作者: 王宝康    时间: 2012-7-29 10:22
这是JDK1.5中在创建集合时,提出了泛型这一概念,即,你集合中要操作的数据类型,也就是说可以对集合里的数据进行检查。在jdk1.5以前,如果没有指定参数类型,则 JDK 1.5 编译器由于无法检查 给出的参数是否合乎要求,而报告 unchecked 警告,这并不影响运行。按照提示,编译是指定参数即可取消这样的警告。或者为其制定类型参数,比如说,你创建了一个ArrayList,你在这个集合中要进行操作的数据类型是String,你在创建集合时,就可以这样创建,ArrayList<String> al = new ArrayList<String>,这样,当你对集合进行相关操作时,如果你传入的参数不是String类型的话,就会在编译器给出错误提示,把可能出现在运行期的错误提到了编译期,把问题留给程序员,而不是用户。
作者: 陈汉维    时间: 2012-7-29 10:41
我记得这个在毕向东里面有讲到,好像是泛型这一块,你再去看看就清楚了。
作者: 樊占江    时间: 2012-7-29 10:48
<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 警告







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2