Java基础再学习之泛型
泛型在jdk1.5出来的,以为自己很理解它了,至少看看代码,写写基本的没有问题。
由于是个新事物,对于我这种从jdk1.1过来的人来说还是一个思维上的跳跃。最近写了一些代码,好好整理了一下。
为什么会出现泛型
我喜欢事事问为什么,要不然就觉得心里不踏实。
我已经不止一次的提到过,任何的新技术的出现都是伴随着解决一个问题来的。
那泛型解决了什么?
我们记得在以前的编码过程中,exception中无非就那几种是比较常见和头疼的。第一大非NullPointerException莫属了,我就不多说了,接着就是ClassCastException,因为我们的代码中往往为了所谓的扩展性(可能是过度设计产生的),用了很多Object类作为参数输入,没有泛型之前,我们的处理方法是到处用强制转换,如果保险点就加很多的instanceof.所以这个Class类型匹配要多烦有多烦。
好了,泛型来了,它的最大特点就是要规范你的编码风格,不允许你乱定义你的类型,用错了就编译不过,不用就给你一个警告,哈哈。
总之,泛型的作用就是使代码得到的信号类型一致,从而使行为一致。
怎么要使用泛型
泛型分为两步:申明 + 使用
申明:两个个地方可以申明,类定义中申明,方法定义申明。(有人提出三个地方,接口定义,但是我想接口也是类嘛)
为什么就这两个地方?有什么好处?
如下类定义中申明了一个T类型,这样就可以在这个类中的任何地方用这个T作为类型,就像一辆车,框架有了,但是什么材料做的不知道,可以是铁的,也可以是铝的,所以我们就用”材料T“
来代替材料类型。
Father<Boy> father1=new Father<Boy>();Father<Girl> father2=new Father<Girl>();father1.addChild(new Boy());father2.addChild(new Girl());