什么是泛型:由一组固定的常量组成的类型
为什么要使用泛型,
List arrayList = new ArrayList(); arrayList.add("aaaa"); arrayList.add(100); for(int i = 0; i< arrayList.size();i++){ String item = (String)arrayList.get(i); Log.d("泛型测试","item = " + item); }
以上代码在编译器没有任何问题,但是执行后会出现运行异常,java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String,
通过泛型可以优化这个问题,编译器就提示错误,提示类型错误。
泛型主要用于解决类型转换问题:
- 泛型变量
E e;
E[] es;
List<E> lists;
- 泛型方法
public <T>T getSomething(){ System.out.println("泛型方法"); return null; }
- 泛型类
//如果类中存在泛型变量,类必须声明为泛型类 //如果类中存在泛型函数,可以将类声明为泛型类也可以将函数声明为泛型函数 public class genericUtils<E>{ E e; E[] es; List<E> lists; public <T>T getSomething(){ System.out.println("泛型方法"); return null; } } }