Java泛型

Java泛型

泛型,即参数化类型,就是将数据类型由原来的具体类型参数化!

泛型的使用

泛型类

//定义一个泛型类
public class ClassName<T> {
    private T data;
    
    public T getData(){
        return data;
    }
    
    public void setData(T data){
        this.data = data;
    }
}
//创建对象
ClassName<String> object1 = new ClassName<>();
ClassName<String> object2 = new ClassName<String>();

泛型接口

//定义一个泛型接口
public interface InterfaceName<T>{
	T getData();
}
//实现接口
//1.指定类型
public class1 implements InterfaceName<String>{
	private String text;
	
	public String getData(){
		return text;
	}
}
//2.不指定类型
public class1<T> implements InterfaceName<T>{
	private T data;
	
	public T getData(){
		return data;
	}
}

泛型方法

//返回值类型为T类型,参数类型为T类型的方法
public T fun(T arg1, T arg2){
	...
}

泛型限制类型

在使用泛型时, 可以指定泛型的限定区域 , - 例如: 必须是某某类的子类或 某某接口的实现类,格式: <T extends 类或接口1 & 接口2>

//苹果类实现了水果接口
interface Fruit{}
class Apple implements Fruit{}
class Plate<T extends Fruit>{}
//装着苹果的盘子,不能装不是水果的东西
Plate<Apple> palte = new Plate<>();

泛型中的通配符?

类型通配符是使用?代替方法具体的类型实参。
<? extends Parent> 指定了泛型类型的上届

interface Fruit{}
class Apple implements Fruit{}
class Plate<T>{}
Plate<? extends Fruit> plate = new Plate<Apple>();

<? super Child> 指定了泛型类型的下届

Plate<? super Apple> plate = new Plate<Fruit>();

<?> 指定了没有限制的泛型类型

Plate<?> plate1 = new Plate<Apple>();
Plate<?> plate2 = new Plate<String>();
Plate<?> plate3 = new Plate<Dog>();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值