黑马程序员技术交流社区

标题: 关于泛型的疑问 [打印本页]

作者: 我为你着迷    时间: 2014-12-27 20:10
标题: 关于泛型的疑问
本帖最后由 我为你着迷 于 2014-12-27 20:12 编辑
  1. import java.util.*;
  2. class ArrayListTest
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList<String> al =new ArrayList<String>();
  7.                 al.add("java01");
  8.                 al.add("java02");
  9.                 al.add("java01");
  10.                 al.add("java01");
  11.                 al.add("java02");
  12.                 al.add("java01");
  13.                
  14.                 System.out.println(al);
  15.                
  16.                 al=singleElement(al);
  17.                
  18.                 System.out.println(al);                        
  19.                                 
  20.         }
  21.         
  22.         public static ArrayList singleElement(ArrayList al)
  23.         {
  24.                 ArrayList<Object> newAl=new ArrayList<Object>();
  25.                
  26.                 Iterator<String> it=al.iterator();
  27.                 while(it.hasNext())
  28.                 {
  29.                      Object obj=it.next();
  30.                         
  31.                      if(!newAl.contains(obj))
  32.                           newAl.add(obj);
  33.                 }
  34.                 return newAl;
  35.         }
  36. }
复制代码
大家好 就是这个代码编译的时候为什么还是报不安全的操作啊,我感觉都已经
加了泛型了啊  哪位大神帮小弟看下哪里还需要加泛型啊  谢谢了 黑马币尽情
奉上啊


作者: 不系之舟王    时间: 2014-12-27 20:21
应该是下面去除重复元素方法忘加泛型了 public static ArrayList singleElement(ArrayList<String> al),你可以试试
作者: 我为你着迷    时间: 2014-12-27 23:11
不系之舟王 发表于 2014-12-27 20:21
应该是下面去除重复元素方法忘加泛型了 public static ArrayList singleElement(ArrayList al),你可以试试 ...

不行啊 还是出现
D:\java0217\day14>javac ArrayListTest.java
注: ArrayListTest.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

作者: 常强儿    时间: 2014-12-27 23:28
凡是有Collection的地方都要加入泛型啊
作者: 我为你着迷    时间: 2014-12-27 23:37
常强儿 发表于 2014-12-27 23:28
凡是有Collection的地方都要加入泛型啊

还有哪个地方 我怎么找不出来呢 很郁闷  
作者: 常强儿    时间: 2014-12-27 23:54
方法的返回值啊
作者: zcyemenye    时间: 2014-12-27 23:59
:lol正在学习中、先收藏着
作者: 找寻小龙猫    时间: 2014-12-28 02:39
  1. import java.util.*;
  2. class ArrayListTest1
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList<String> al =new ArrayList<String>();
  7.                 al.add("java01");
  8.                 al.add("java02");
  9.                 al.add("java01");
  10.                 al.add("java01");
  11.                 al.add("java02");
  12.                 al.add("java01");
  13.                
  14.                 System.out.println(al);
  15.                
  16.                 al=singleElement(al);
  17.                
  18.                 System.out.println(al);                        
  19.                                 
  20.         }
  21.         
  22.         public static ArrayList<String> singleElement(ArrayList<String> al)    //这一行注意加泛型
  23.         {
  24.                 ArrayList<String> newAl=new ArrayList<String>();                        //别用 Object 了,因为会出现类型不同的异常
  25.                
  26.                 Iterator<String> it=al.iterator();
  27.                 while(it.hasNext())
  28.                 {
  29.                      String obj=it.next();                                //这也改为String类型
  30.                         
  31.                      if(!newAl.contains(obj))
  32.                           newAl.add(obj);
  33.                 }
  34.                 return newAl;
  35.         }
  36. }
复制代码

作者: as604049322    时间: 2014-12-28 08:35
public static ArrayList singleElement(ArrayList al)
参数也要加上泛型
(ArrayList<Object> al)




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