1.初始泛型
JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
一个简单的问题 我需要你写一个方法对于整型、字符、字符串数组进行输出?
如果用一般方法会写三个方法 三个类型写三个方法
但是我们来看一个泛型的实例
class test{ //这里的声明为static静态方法是因为要在另一个static的main函数中调用 public static <T>void print(T[] arr) { for(T tmp:arr) { System.out.print(tmp+" "); } System.out.println(); } public static void main(String[] args) {
//注意 泛型的类型不能是基本数据类型(int char等)
//必须是引用类型 Integer[] num= new Integer[]{1,2,3,4}; Character[] charac= new Character[]{'a','b','c','d'}; String[] s=new String[]{"hello","world"}; print(num);print(s);print(charac); } }
输出为
这里我们给出泛型的定义方法
- 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在上面例子中的<T>)。
- 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
- 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
- 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。