温习 -泛型

关于泛型的一个详解

1. 什么是泛型,为什么要使用泛型。

泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?
顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型 eg:String,Integer。
泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

2.泛型的一个使用-Class类

首先创建一个泛型类Paradigm
public class Paradigm<T> {
    private T key;

    public Paradigm(T key) { //泛型构造方法形参key的类型也为T,T的类型由外部指定
        this.key = key;
    }

    public T getKey(){ //泛型方法getKey的返回值类型为T,T的类型由外部指定
        return key;
    }
}
创建测试类GenericTest
@Slf4j
public class GenericTest {
    public static void main(String[] args) {
        //泛型的类型参数只能是类类型(包括自定义类)
        //传入的实参类型需与泛型的类型参数类型相同,即为Integer.
        Paradigm<Integer> genericInteger = new Paradigm<Integer>(123456);
        System.out.println("genericInteger = " + genericInteger.getKey());
        //传入的实参类型需与泛型的类型参数类型相同,即为String.
        Paradigm<String> genericString = new Paradigm<String>("key_vlaue");
        System.out.println("genericString = " + genericString.getKey());
    }
}

最后运行返回的一个输出结果

意义:这样就实现的一个代码块的重复使用,减少一个代码的冗余

2.1泛型的使用-Interface

创建泛型接口
public interface ParadigmInterface<T> {
        T next(String s);
}
创建泛型接口实现方法
public class ParadigmInterfaceImpl<T> implements ParadigmInterface<T> {
    @Override
    public T next(String s) {
        return (T) s;  // 不规定传入的类型时<T>返回的T
    }
}
创建好了接口以及实现的方法,我们接着调用一下我们所写的一个接口和结果的输出。
@Slf4j
public class GenericTest {
    public static void main(String[] args) {
//        //泛型的类型参数只能是类类型(包括自定义类)
//        //传入的实参类型需与泛型的类型参数类型相同,即为Integer.
//        Paradigm<Integer> genericInteger = new Paradigm<Integer>(123456);
//        System.out.println("genericInteger = " + genericInteger.getKey());
//        //传入的实参类型需与泛型的类型参数类型相同,即为String.
//        Paradigm<String> genericString = new Paradigm<String>("key_vlaue");
//        System.out.println("genericString = " + genericString.getKey());
        ParadigmInterface paradigmInterface = new ParadigmInterfaceImpl();
        String test = "测试泛型接口";
        System.out.println("console: = " + paradigmInterface.next(test));
    }
}

泛型接口测试输出

	好啦,现在泛型就先介绍到这儿了。另外,提到泛型,大家用到最多的就是在集合中,其实,在实际的编程过程中,自己可以使用泛型去简化开发,且能很好的保证代码质量及其实现冗余的减少。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值