泛型:定义函数的时候不指定参数的类型,将类型作为变量参数(参数化的类型),在使用或调用的时候传入具体类型(类型实参)
泛型的使用:
泛型类

泛型接口

泛型方法
private static <T> T 方法名(T a, T b) {}
例:
public static <A> void print(A a){ // <A> 泛型
System.out.ptintln(a)
}
调用这个方法:
print("ABC");
泛型限制类型:定义泛型的时候,限制泛型的类型
Plate<? super Appale > P =new Plate<Fruit>(); //指定下限,必须是XXX的父类
Plate<? > P =new Plate<Fruit>(); //没有限制
<A,B,C,D>多个泛型逗号隔开
记录今天的一个案例:

然后。。。。试了好多种写法,变成这样:

传进去的list是泛型,传出来的list也必须是泛型,就没办法new 一个list 接收LinkedHashSet的值,然后我就把list清空了,把LinkedHashSet的值重新装进去,这样不用管list是啥类型了

这样就可以了。
主要2点:
1、L是泛型,已经包含类型参数了,不用再带<T>
2、 泛型不能new,就算new成子类的实例,也传不出来,因为要传一个泛型出来
本文介绍了Java中的泛型概念,包括泛型类、泛型接口和泛型方法的使用。详细阐述了如何定义和限制泛型类型,并通过示例展示了泛型在实际编程中的应用,如使用通配符限制泛型的上下界。最后,通过一个案例说明了在处理泛型集合时的注意事项,强调了泛型不能直接new以及在处理不同泛型类型转换时的解决方案。
657

被折叠的 条评论
为什么被折叠?



