黑马程序员技术交流社区

标题: 通配符?的问题,卡这里了 [打印本页]

作者: 麦者    时间: 2013-10-17 11:08
标题: 通配符?的问题,卡这里了
本帖最后由 麦者 于 2013-10-17 13:12 编辑

基础加强里面的
  1. package com.test;
  2. import java.sql.Date;
  3. import java.util.Collection;
  4. import java.util.HashSet;
  5. import java.util.List;
  6. class Test{
  7. //该方法用于打印出任意参数化类型的集合中的所有数据
  8.         public static void printCollection(Collection<?> cols) {
  9.                 for(Object obj:cols) {
  10.                         System.out.println(obj);
  11.                 }
  12.                 //cols.add("string");//错误,因为它不知自己未来匹配就一定是String
  13.                 cols.size();//没错,此方法与类型参数没有关系
  14.                  cols = new HashSet<Date>();
  15.         }
  16. }
复制代码
既然加入String错误,即不匹配的意思,那么 cols = new HashSet<Date>();怎么就可以为Date类型的呢?我在上面的代码中改成
  1. cols = new HashSet<String>();
  2.                 cols.add("string");
复制代码
错误提示为把add改为addAll,是不是只能声明就不能添加啊?
作者: 麦者    时间: 2013-10-17 13:11
自己悟吧




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