1. 什么是泛型
泛型是Java中编写程序代码的一种机制。可以理解为参数化类型,类似于c++中的模板类。
2. 引入泛型的原因
泛型正是我们需要的程序设计手段。使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。泛型提供了一个更好的解决方案:类型参数。类型参数使程序具有更好的可读性和安全性
3. 泛型类声明
与普通类不同的是泛型类类名后加一对尖括号,类定义中的类型变量指定方法的返回类型以及域和局部变量的类型
class className<E>{//E即为类型参数
…
}
4. 泛型类使用
使用泛型定义对象时要在尖括号中指明具体的类类型
className<String> s=newclassName<String> (new String());
className<Integer> i=newclassName<Integer>(new Integer());
5. 多个类变量
class className<E,U,S,…>{//E即为类型参数
…
}
6. 一个泛型例子
public class MyGenerics<E>{//E is a type parameter
private E a;
public MyGenerics(E a){this.a=a;}
public void set(E a){this.a=a;}
public E get(){return a;}
public void inspect(){
System.out.println(a.getClass().getName());
}
public static void main(String[] args) {
MyGenerics<String> s=new MyGenerics<String> (new String());
s.inspect();
MyGenerics<Integer> m=new MyGenerics<Integer> (new Integer(10));
m.inspect();
}
}
运行结果:
C:\Users\Administrator\Desktop>java MyGenerics
java.lang.String
java.lang.Integer
7.泛型方法
public class GenericMethods{
public <T> void f(T x){
System.out.println(x.getClass().getName());
}
public static void main(String[] args) {
GenericMethods gm=new GenericMethods();
gm.f("");
gm.f(1);
gm.f(1.0);
gm.f(1.0F);
gm.f('c');
gm.f(gm);
}
}
运行结果:
java.lang.String
java.lang.Integer
java.lang.Double
java.lang.Float
java.lang.Character
GenericMethods
参考博客;