泛型是Java SE 1.5以后才出来的,这种参数类型可以用在创建类,接口和方法中,分别称为泛型类,泛型方法和泛型方法,泛型使得java语言更加方便,泛型本质是“广泛的参数化类型”。
泛型的特点:
1,类型安全。泛型一个主要目的是提高类型的安全。使用泛型编译器知道变量的类型限制,如果没有泛型,这只能靠程序员自己把握,这明显没有编译器安全高。
2,消除强制转换。这样可以使代码更加可读,并减少出错机会。
使用泛型方法时,不必指明参数类型,编译器会自己找出具体的类型。泛型方法除了定义不同,调用就像普通方法一样。需要注意,一个static方法,无法访问泛型类的类型参数,所以,若要static方法需要使用泛型能力,必须使其成为泛型方法。
泛型的定义:
public interface A<E>{
void add(E x);
B<E> B();
}
public interface B<E>{
E next();
boolean hasNext();
}
在上面的代码中,使用<E>类声明一个参数化的类型E,可以使用E这个名称作为类型代表来声明成员,参数或返回类型如下使用A类:
A<String> myList=new LinkedList<String>();
myList.add(new String("Hellow"));
String x=myList.B().next();//不许要再转换类型
泛型的特点:
1,类型安全。泛型一个主要目的是提高类型的安全。使用泛型编译器知道变量的类型限制,如果没有泛型,这只能靠程序员自己把握,这明显没有编译器安全高。
2,消除强制转换。这样可以使代码更加可读,并减少出错机会。
使用泛型方法时,不必指明参数类型,编译器会自己找出具体的类型。泛型方法除了定义不同,调用就像普通方法一样。需要注意,一个static方法,无法访问泛型类的类型参数,所以,若要static方法需要使用泛型能力,必须使其成为泛型方法。
泛型的定义:
public interface A<E>{
void add(E x);
B<E> B();
}
public interface B<E>{
E next();
boolean hasNext();
}
在上面的代码中,使用<E>类声明一个参数化的类型E,可以使用E这个名称作为类型代表来声明成员,参数或返回类型如下使用A类:
A<String> myList=new LinkedList<String>();
myList.add(new String("Hellow"));
String x=myList.B().next();//不许要再转换类型