泛型

tech2026-01-12  17

#泛型是啥

泛型,即“参数化类型”。我们在定义方法时有形式参数以此来规定传入参数的类型,那么泛型就是,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

#泛型的作用

泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

public class GenericText{ public static void main(String[]args){ List lis = new ArrayList(); lis.add("yamiedie"); lis.add("good"); lis.add("100"); for(int i = 0;i<lis.size();i++){ String name = (String)lis.get(i); System.out.println("name:"+name); } } } 运行结果: name:yamiedie name:good Exception:java.lang.Interger cannot be cast to java.lang.String

当我们将对象存入集合时,集合不管这个对象是啥类型的,但是当我们取出来时,这个对象编译成Object类型。但是运行时还是会以他本来的类型运行。所以当我们强转时,就有可能报错。

泛型就是来解决这类问题的。

不说了 ,看代码。

public class GenericText{ public static void main(String[]args){ List<String> lis = new ArrayList<String>(); lis.add("yamiedie"); lis.add("good"); lis.add("100");//提示编译错误 for(int i = 0;i<lis.size();i++){ String name = (String)lis.get(i); System.out.println("name:"+name); } } }

我们在集合的创建中加入泛型,限定他能添加的元素,这样我们传入限定以外的元素时,就会编译报错。

那么泛型不仅可以用在集合的创建上,也可以用在任何你能想到的地方不限于接口,类,方法。

更高级的方法下个星期写:通配符。

最新回复(0)