java中的泛型
Posted 苦瓜爆炒牛肉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的泛型相关的知识,希望对你有一定的参考价值。
1.什么是泛型
阅读jdkAPI文档时,经常会见到<E>。其实这就是泛型。例如Collection<E>代表的是集合里只能放某一个类的对象。
2.泛型的好处
(1)提高安全性(将运行期的错误转换到编译期)
(2)省去强转的麻烦
3.泛型的基本使用
<>中放的必须是引用数据数据类型
public static void main(String[] args) { ArrayList<Students> arrayList = new ArrayList<>(); arrayList.add(new Students("张三",13)); arrayList.add(new Students("李四",14)); arrayList.add(new Students("王五",15)); ListIterator<Students> it = arrayList.listIterator(); while (it.hasNext()){ Students s = it.next(); System.out.println(s); } }
4.泛型使用注意事项
前后的泛型必须一致,或者后面的泛型可以省略不写(JDK1.7的新特性菱形泛型)
5.编写泛型类
public class Tools<E> { private E e; public E getObj(){ return e; } public void setObj(E e){ this.e = e; } }
6.编写泛型方法
public class Test12 { public<E> void show(E e){ System.out.println(e); } public static void main(String[] args) { Test12 t = new Test12(); t.show(true); } }
注意:如果是编写泛型类的时候,里面有静态方法,静态方法必须声明自己的泛型。因为静态方法是随着类的加载而加载的,这时候还没有对象。
public class Tools<E> { private E e; public E getObj(){ return e; } public void setObj(E e){ this.e = e; } public static<T> void show(T t){ System.out.println(t); } }
7.编写泛型接口
interface Inter<T>{ public abstract void show(T t); } public class Test13 implements Inter<String>{ @Override public void show(String s) { System.out.println(s); } }
8.泛型通配符
? 可以代表任意类型
? extends E 向下限定,可以表示E以及其子类
? super E 向上限定,可以表示E以及其父类
以上是关于java中的泛型的主要内容,如果未能解决你的问题,请参考以下文章