创建集合的时候,集合后面的尖括号填一个泛型,那么这个泛型是必须存在的类吗?

2025-03-24 14:50:19
推荐回答(2个)
回答(1):

1. 设计泛型的初衷:

1) 主要是为了解决Java容器无法记忆元素类型的问题:

i. 由于Java设计之初并不知道会往容器中存放什么类型的元素,因此元素类型都设定为Object,这样就什么东西都能放了!

ii. 但是这样设计有明显的缺点:

a. 取出元素的时候必须进行强制类型转换(尽管集合在运行时里面元素的“运行时类型”不变,即元素的getClass返回的还是最初自己的类型而不是Object);

b. 如果不小心往集合里加了不相同类型的元素可能会导致类型异常(进行equals、compare比较的时候尤为明显);

c. 由于没有类型就需要在很多地方进行强制类型转换,但是这样做增加了编程的复杂度,并且代码也不美观(臃肿),维护起来也更加困难;

2) 泛型的概念定义:

i. 从Java 5开始,引入了参数化类型(Parameterized Type)的概念,改造了所有的Java集合,使之都实现泛型,允许程序在创建集合时就可以指定集合元素的类型,比如List就表名这是一个只能存放String类型的List;

ii. 泛型(Generic):就是指参数化类型,上面的List就是参数化类型,因此就是泛型,而String就是该List泛型的类型参数;

回答(2):

有点赖皮,但符合要求 import java.util.Vector; class Conllection2 extends Vector{ @Override public boolean add(T element){ System.out.println("say a word"); return super.add(element); } } public class TestF { public static void main(String[] args) { Conllection2 c=new Conllection2(); c.add(0); } }