关于泛型回顾

一 泛型的概念和作用

在编程中,我们定义方法参数,返回的内容等都需要一个类型,这里就涉及到了参数化类型,而泛型就是这个参数化类型,即在不创建新的类型下,来指定或者限制形参的类型。

举个例子讲,比如说我定义了一个int型参数来进行加法运算,那么我们输入两个int类型的整数就可以正常实现运行效果。但是如果这个时候我们需要计算float类型的加法,这个时候就不能用这个方法了,需要重新定义一个包含float类型形参的方法来计算,那么这样就会非常麻烦,因此泛型的强大就体现出来了。

二 泛型的使用

泛型一般有三种使用方式,分别为:泛型类、泛型接口、泛型方法,并且泛型通常有泛型标识,一般用T、E、K、V来表示,下面分别来具体讲一下

2.1 泛型类

基本用法:

public class Math<E>{
	private E num;
	private E[] data;
	
	//参数类型都由外部指定
	public Math(E num) { 
        this.num = num;
    }
    public E getNum(){ 
        return num;
    }
//注意实例化的时候,必须指定E的具体类型,而且必须注意
//这里的类型必须是包装类
//另外,也可以实例化的时候不带类型,这个时候就是任意类型,如下第二行
Math<Integer> math = new Math<Integer>(123);
Math math = new Math(123);
2.2 泛型接口

泛型接口和泛型类差不多,基本用法:

public interface Math<E>{
	public E add();
}
//在声明类的时候,需要把接口的泛型声明一起加上
//如果此时继承接口时接口传入了实际的参数类型,
//那么类里面用到泛型的地方都要变为这个参数类型
class Add<E> implements Math<E>{
	@Override
	public E add(){
		return null;
	}
}
2.3 泛型方法

泛型方法和前面两个不同,之前我们在泛型类里面加入了类似看起来像泛型方法的东西,但是其实这只是一个类的成员方法,只是返回值变成泛型标识了而已,标准的泛型方法应该是这样的:

//<E>表示声明这个方法是泛型方法,参数里面的E则是和这个<E>类型保持一致
public <E> E add(E num){
	return null;
}

这是基本泛型的一些用法,具体更多细节之后补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值