黑马程序员技术交流社区

标题: 请问这段程序为什么会报错? [打印本页]

作者: 王维波    时间: 2011-10-24 16:35
标题: 请问这段程序为什么会报错?
public static void printCollection(Collection<Object> cols) {
              for(Object obj:cols) {
                     System.out.println(obj);
              }
              /* cols.add("string");//没错
               cols = new HashSet<Date>();//会报告错误!*/

请同行详细解答,  谢谢!

该贴已经同步到 保持常态0616的微博
作者: 成杰    时间: 2011-10-24 17:24
错,不存在继承关系

作者: 王维波    时间: 2011-10-24 17:32
成杰 发表于 2011-10-24 17:24
错,不存在继承关系

Thanks, 请多多指教。
作者: 郭敏    时间: 2011-10-24 20:06
保持常态0616 发表于 2011-10-24 17:32
Thanks, 请多多指教。

HastSet类实现了Collection 接口啊?  
我认为此处报错的原因在于,类型不匹配。 因为你在定义Collection时,Collection只能存放Object对象,但在实例化时,HashSet中只能存放Date类型对象, 如何将其改为 cols = new HashSet<Object>编译器是可以通过
作者: 王维波    时间: 2011-10-24 20:22
郭敏 发表于 2011-10-24 20:06
HastSet类实现了Collection 接口啊?  
我认为此处报错的原因在于,类型不匹配。 因为你在定义Collection ...

非常感谢你!:handshake  以后还请你多多关照。
作者: 张振宁    时间: 2011-10-25 17:27
本帖最后由 Simple 于 2011-10-25 17:30 编辑

cols = new HashSet<Date>();//会报告错误!*/

cols 是个 Collection<Object> 对象, 如果 Collection<Object> 继承了    HashSet<Date>   是不会报错的。




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