泛型
泛型
泛型:java jdk1.5新特性
好处:1.将运行时的错误提前到编译前
2.避免无谓的强制类转换
自定义方法泛型:自定义泛型就是一个数据类型的占位或者一个数据类型变量, 一般用T或E来做占位的符号
方法泛型的格式:
<占位符> T:定义一个泛型
如果传进去的是基本数据类型:接收的时候改用它的包装类来接收。
* int ----> Integer;
* short ----> Short;
* long ----> Long;
* double ----> Double;
* float ----> Float;
* byte -----> Byte;
* boolean ----> Boolean;
* char -----> Charactor;
泛型方法的使用注意点:
1.泛型方法中自定义一个泛型数据类型是在实际参数传递时确定的。
2.泛型所用的标识符需要符合标识符的命名规范,一般习惯用大写字母来表示。
需求:将一个集合中的元素由小写转化为大写
ArrayList<String> list = new ArrayList<String>(); list.add("aa"); list.add("bb"); list.add("cc"); list.add("dd"); //list.add(123); // 运行的时候报错的 for(int i = 0; i < list.size(); i++) { String str = list.get(i); System.out.println(str.toUpperCase()); } |
自定义数组的工具类
定义格式:
Class 类名<声明自定义的泛型> {}
泛型类的使用注意点:
1.泛型类上定义的自定义泛型的类型是在创建这个类对象时确定的。
2.如果一个自定义泛型的类,在创建对象时没有指定,默认为Object.
3.静态方法是不能使用类上的自定义的泛型,必须在方法上面定义一个泛型。
泛型接口:
泛型接口的定义方式:
interface 接口名<声明自定义的泛型> {}
接口泛型的使用注意点:
1.接口上自定义的泛型在实现该接口的时候被指定的
2.如果实现接口是没有指定接口,那么就会默认为Object
3.需要在创建接口实现类对象是指定数据类型,格式为:
class 类名<声明自定义泛型> implements 接口<声明自定义泛型>