学习笔记:泛型

本文介绍了Java中的泛型概念,包括泛型类、泛型接口和泛型方法的使用。详细阐述了如何定义和限制泛型类型,并通过示例展示了泛型在实际编程中的应用,如使用通配符限制泛型的上下界。最后,通过一个案例说明了在处理泛型集合时的注意事项,强调了泛型不能直接new以及在处理不同泛型类型转换时的解决方案。
摘要由CSDN通过智能技术生成

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

泛型的使用:

泛型类

泛型接口

 

泛型方法

 private static <T> T 方法名(T a, T b) {}

例:

public static <A> void print(A a){        // <A>  泛型

        System.out.ptintln(a)        

}

调用这个方法:

print("ABC");

泛型限制类型:定义泛型的时候,限制泛型的类型

<T extends 类或接口 1 & 接口 2>
例:
interface Fruit { }
class Apple implements Fruit { }
class Plate <T extends Fruit  > { }       // 这里是 extends
//使用的时候通过通配符 ?
Plate<? extends Fruit > P =new Plate<Appale>();        //指定上限,必须是XXX的子类

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成子类的实例,也传不出来,因为要传一个泛型出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值