关于泛型的使用

今天准备继续看看springMVC的源码的,但是实在是看不下去了,惭愧惭愧,所以来总结一下泛型的使用(好像没什么逻辑)。

泛型的介绍就就不多说了,要我说我也说不清楚。。。引用一句话:泛型类型在逻辑上可以看成是多个不同的类型,实际上都是相同的基本类型。泛型的使用主要分为:泛型类,泛型接口,泛型方法。我们平时一般使用泛型就是在Map、List加入泛型类型,会有一种泛型就这样的感觉,事实上这是因为API给你创建好了泛型接口,你只是去使用,所以没有感觉到泛型的作用,去深入了解之后,你会发现泛型还是有点意思,有点思想在里面的。

泛型类:就是在类上加个泛型,哈哈哈,好吧,这个解释有点勉强,直接上点代码吧:

关于泛型的使用_第1张图片

运行结果:


主要使用场景就是,我们在创建类的时候,有一些属性不能确定其类型,而在使用的时候又想要约束其具体类型(因为使用Object做类型转换的时候,很容易出错),这个时候泛型就登场了,跟组合有点像,运行时确定具体的实现。

泛型接口:

泛型接口和泛型类的作用是差不多的,作用对象不一样,泛型接口就一点不同,当具体的类实现泛型接口时,你有两种选择,一是在类上继续选择泛型,在具体的使用时再去确定类型,二是直接选择具体的类型,但是你不能不写,这样是会报错的,上点代码:

关于泛型的使用_第2张图片

关于泛型的使用_第3张图片

关于泛型的使用_第4张图片

关于泛型的使用_第5张图片

这样看就很明显了吧。

泛型方法:

泛型方法有两种,一种是在泛型类里面的泛型方法,这种方法的泛型和类的泛型是一样的。一种是和泛型类无关的泛型方法,泛型是让方法自己确定的,日常上代码:

关于泛型的使用_第6张图片

大概就是这样了。

另外,泛型不支持父类做形参,而实参传入子类的,这个时候就需要使用泛型通配符了,就是那个问号,还有泛型支持可变参数就是那个省略号T...,因为下班了,所以我就不写了。总的来说,泛型就是为了处理那些还不能确定是什么类型,但在具体使用时却要约束成具体的类型的场景。

你可能感兴趣的:(总结)