zoukankan      html  css  js  c++  java
  • <转>java编译问题:使用了未经检查或不安全的操作

    使用了未经检查或不安全的操作

    在本人用editplus写java文件时碰到的问题。  
      
    源代码
    import java.util.*;
    class collection{
        public static void main(String[] args) {
            Collection c1=new ArrayList(25);
        
            c1.add(new String("one"));
            c1.add(new String("two"));
            String s="three";
            c1.add(s);
            for (Iterator i=c1.iterator();i.hasNext();)
            {
                
                System.out.println(i.next());
            }
        }
    }

    然后查找到以下原因,这是转自别人的。

     
    在编译java源文件时,你使用的是jdk1.5或以上时,可能出现这个问题。(使用了未经检查或不安全的操作;请使用 -Xlint:unchecked 重新编译。) 
    原因是jdk1.5里的集合类的创建和jdk1.4里有些区别,主要是jdk1.5里增加了泛型,也就是说可以对集合里的数据进行检查。在jdk1.5以前,如果没有指定参数类型,则 JDK 1.5 编译器由于无法检查 给出的参数是否合乎要求,而报告 unchecked 警告,这并不影响运行。按照提示,编译是指定参数即可取消这样的警告。或者为其制定类型参数。
    List temp = new ArrayList ();
      temp.add("1");
      temp.add("2");
    修改为
    List <String> temp = new ArrayList <String> ();
      temp.add("1");
      temp.add("2");
     
     
     
    然后修改代码为
    import java.util.*;
    class collection{
        public static void main(String[] args) {
            Collection<String> c1=new ArrayList<String>(25);
        
            c1.add(new String("one"));
            c1.add(new String("two"));
            String s="three";
            c1.add(s);
            for (Iterator i=c1.iterator();i.hasNext();)
            {
                
                System.out.println(i.next());
            }
        }
    }

    问题消除

  • 相关阅读:
    阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_10-webpack研究-安装nodejs
    ES6深入浅出-1 新版变量声明:let 和 const-2.视频 let和const
    ES6深入浅出_汇总贴
    ES6深入浅出-1 新版变量声明:let 和 const-1.视频 概述
    数据类型及其空间大小,vs2012实测
    linux cmd
    常见英文地址表达方法
    网络基础
    VMware三种链接方式
    Source Insight使用技巧
  • 原文地址:https://www.cnblogs.com/adaonling/p/3586290.html
Copyright © 2011-2022 走看看