首页 > 编程 > Java > 正文

JAVA中泛型数组

2019-11-08 03:07:40
字体:
来源:转载
供稿:网友

第一篇博客,java入门,关于java泛型数组简单探究的记录。 java中不允许建立泛型数组,但是可以通过类型转换实现这一功能。 如下面代码所示:

public class Test1{ public static void main(String[] args){ FanXing<Integer> s; s=new FanXing<Integer>(); //s.a[1]=2; //此种赋值方法有误 [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer; s.set(2,3,4); //赋值需要通过set方法 System.out.PRintln(s.geta1());//输出需要get方法 //System.out.println(s.a[1]);//此种输出方法有误 [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer; }}class FanXing<T>{ T[] a=(T[]) new Object[3];//此处创建泛型数组,需要先创建Object,然后向下类型转换为T[] public void set(T aa,T bb,T cc){ a[0]=aa; a[1]=bb; a[2]=cc; } public T geta1(){ return a[1]; }}//程序输出:3

此外还有如下方式:

public class Test2{ public static void main(String[] args){ FanXing<Integer> s; s=new FanXing<Integer>(); s.a[1]=2; //可以直接赋值 s.set(2,3,4); //也可通过set方法 System.out.println(s.geta1());//输出需要get方法 System.out.println(s.a[1]);//也可直接输出实例变量 }}class FanXing<T>{ Object[] a=(T[]) new Object[3];//此处直接创建Object数组,然后转换为T[]类型 public void set(T aa,T bb,T cc){ a[0]=aa; a[1]=bb; a[2]=cc; } public T geta1(){ return (T)a[1];//此处返回应该强制转换为T类型 }}/*程序输出:3 3*/

第一种是算法(第四版中p84)提供的方法。

初学者的入门记录。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表