JAVA泛型类定义问题

2024-11-02 03:32:48
有4个网友回答
网友(1):

泛型说白了就是拆箱和装箱
例:
ArrayListarray=new ArrayList();//此处试用了泛型
for(int i=0;iStudent student=array.get(i);//此处就不需要强制类型转换因为泛型已经自动帮你转换
}
//--------不加泛型---------
ArrayList array=new ArrayList();//此处试用了泛型
for(int i=0;iStudent student=(Student)array.get(i);//就需要强制类型转换
}
所以:类名和构造方法不需要拆箱和装箱,也就是强制类型转换,因此
类名不可以用Gen
构造函数名是Gen()而不是Gen()这格式

网友(2):

第一个问题
楼主要用Gen这种形式声明时没有错误,意思是允许类型为Object及其子类。但是用了用Gen这个通配符有个要求就是不能够再对他加入新的信息,只能够取得他当中的信息或是删除他当中的信息。
第二个问题
很简单,构造函数不需要返回类型,所以没有必要用用Gen这种方法声明构造函数。这里的泛型定义和这个构造函数声明没有任何关系,只是定义了这个类中某些成员的类型。
希望我的回答让楼主满意:)

网友(3):

T这个要是类才可以的。?会被编译器识别为不知道的类型,所以肯定过不了。不能这么用。
Gen()这么写的目的是让编译器知道这个容器的类型,是装入什么东西的。而对于构造函数来说他是不用管这个的,构造函数只要给你开辟了一块内存就完事了,他可以完全不管你要保存的类型。

网友(4):

<>在以前的java版本里根本没有,你就当他不存在就行了,至于构造用他不知道你要表达什么意思,如果构造Gen(T)已经可以表达了还要你还用个Gen来表达构造,岂不是java设计有问题了