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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘文飞 中级黑马   /  2012-10-17 11:04  /  1074 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


代码如下,问题在注释中

————————————————————————————————————————————————————
public class GenericsDemo05{
        public static void main(String args[]){
                Integer i[] = fun1(1,3);//返回泛型数组
                fun2(i);
        }
        public static <T> T[] fun1(T...arg){//这样表示接收可变参数?
                return arg;
        }
        public static <T> void fun2(T parm[]){//输出
                for(T t:parm){//这种循环方式没看明白
                        System.out.print(t + ",");
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
  public static <T> T[] fun1(T...arg){//这样表示接收可变参数?
                return arg;
        }
这是JDK1.5以后的新特性,参数列表里可以定义多个参数,方法在调用时当然可以传多个参数


for(T t:parm){//这种循环方式没看明白
                        System.out.print(t + ",");
                }
这个也是JAVA1.5的一个新特性叫做增强for循环,作用和最初这种写法for(初始值;执行条件;步长)  都是用来遍历的

T -----------类型

t------------自己定义的名字,随便起

parm-----------------定义好的引用名T[] parm或者按你代码里的写法T parm[]

评分

参与人数 2技术分 +1 黑马币 +4 收起 理由
唐志兵 + 1 赞一个!
刘文飞 + 4

查看全部评分

回复 使用道具 举报
本帖最后由 陈军 于 2012-10-17 15:48 编辑

就是多了泛型,只要你看到参数中有...那肯定就是可变参数。可变参数的意思是说。
我这个参数,你可以传也可以不传。不过不传就没意义了。

循环。
T就是你要接收的泛型类型。你的第3个方法
   public static <T> void fun2(T parm[]){//输出
                for(T t:parm){//这种循环方式没看明白
                        System.out.print(t + ",");
                }
        }
表示接收的参数是T类型的数组,数组名字为 parm。 每一个数组元素都是T类型
下面的循环就是数组的遍历。而且这个循环是高级for循环。

高级for循环在数组遍历时的格式就是:
for(元素类型  你指定的变量名:数组名){你要执行的操作}

评分

参与人数 2技术分 +1 黑马币 +4 收起 理由
刘文飞 + 4
韩军博 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马