A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王清云 黑马帝   /  2011-9-13 23:10  /  1723 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天看到泛型方法的练习
其中有一道题目是这样的:定义一个方法,可以将任意类型数组中的所有元素填充为相应类型的所有对象;
按照老师的写法:[code=java]private static <T> void fillmethod(T[] a,T obj){
                for(int i=0;i<a.length;i++){
                        a=obj;
                }[/code]这样写可以,但是换成[code=java]private static <T> void fillmethod(T[] a,T obj){
                for(T t:a){
                        t=obj;
                }
        }[/code]这样就不行,这样赋值语句相当于没有实现,为什么?

4 个回复

倒序浏览
黑马网友  发表于 2011-9-14 14:41:59
沙发
你把obj赋值给临时变量t  而不是数组里的值。这样就能理解了。
回复 使用道具 举报
黑马网友  发表于 2011-9-14 14:44:16
藤椅
补充,你的第二段代码用第一段的格式写是这样的。[code]for(int i=0; i<a.length; i++) {
     T t = obj;
}[/code]
回复 使用道具 举报
黑马网友  发表于 2011-9-14 16:26:53
板凳
t是临时变量,,,赋值给它,,数组a无变化啊。。
增加for   ,,就是用来遍历的

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 回答的很简单明确!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-15 15:17:37
报纸
明白了!谢谢大家!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马