泛型赋予了类型参数式多态的能力
泛型的第一个好处是编译时的严格类型检查。有效的避免了运行期的ClassCastException,提高了程序的安全性和健壮性。
这是集合框架最重要的特点。此外,泛型消除了绝大多数的类型转换。如果没有泛型,当你使用集合框架时,你不得不进行类型转换。另外 泛型简化了代码,应用泛型的程序提高程序的可读性,更利于团队的合作开发。
举个例子来说
你的钱包里你规定只装钱
那么你去出来的想也不想就是钱,管他是¥还是$不用转换的-->都是钱(确定里面是什么)
不用泛型的话 就不规定放什么
那么你取出来的东西就不一定是钱,这样你就要转换了,那要是石头的话你要转换成钱就错了(不确定里面到底是什么)
首先你要明白:
他给出的这个泛型,不是无意义的.
如果定义容器了list,如果你不定义他的泛型,那么他可以放不同类型的东西.
比如你定义了一个list
他只可以存放整型的数据,一旦你想要放其他的类型的数据,他会包错.
所以这个泛型的目的就是是定义的容器所放的内容是一个统一的类型.
很多时候,尤其在使用对象的多态性的时候,你不知道进到你数据结构中的对象到底是什么类型的,执行的时候就会出问题。泛型就是限定一个数据结构,或者一个方法参数只允许传入什么类型的对象。
比如
类A,类B,类C,B和C继承A。B中有属性abc,C中有属性def
定义一个没有泛型的List,这时候你可以随便往里存,但从list往外取的时候(假设取出的对象叫obj),你要调用abc就要先转型,这时候C的对象会异常……
没事多看看教程,多敲敲代码,基本上练着练着也就会了,有一套动力节点301集java基础教程里面讲的很有趣也讲得很细致明了,建议你去看看。
knightzhuwei 说的很正确 貌似也没什么好补充的。。。
简单点说 面向对象设计的最重要的目的之一 就是管理 泛型是管理中的一个比较常见的方法 假设
A,B继承了C 而D里面有个方法getC(C c) 那么 你想往这里传除C和他的子类之外其他参数的时候 必然是传不进去的 有效的提高了安全性 更明确了该方法的目的 这样就明白了吧?