泛型总结
一、泛型的益处:
1、口径宽,泛指数据类型,安全性高,可以匹配多种类型的数据。
2、可以提高代码的重用率。
二、示例:
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Dog> al=new ArrayList<Dog>();
Dog dog1=new Dog();
al.add(dog1);
Dog temp=al.get(0);//这个时候就不需要强制类型转换
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<E> al=new ArrayList<E>();
Dog dog1=new Dog();
al.add(dog1);
Dog temp=(Dog)al.get(0);
Cat temp1=(Cat)al.get(0);
}
三、JAVA的反射机制&泛型类
益处:
1、通过泛型可以得到一个类的许多信息,编写一些灵活性更好的代码。
2、有些类在编写之初却是无法得知接下来要使用什么类型的数据,那么就可以使用泛型类。或者说在实例化类的时候要传入一个未知属性的类,就用这个方法。
反射格式:泛型类(E).getclass().【具体的方法名】。
泛型类格式:class 类名<E>{ }
例子:
import java.lang.reflect.Method;;
public class Demo7_5
{
public static void main(String[] args)
{
//Gen<Integer> gen1=new Gen<Integer>(2);//我们这个时候调用了构造函数,注意新建的时候都是调用了构造函数
//gen1.showTypeName();
Gen<Bird> gen2=new Gen<Bird>(new Bird());
gen2.showTypeName();
}
}
//定义一个鸟类Bird
class Bird
{
public void test1()
{
System.out.print(" 鸟鸟");
}
public void count(int a,int b)
{
System.out.println("两个数的和是:"+(a+b));
}
}
//定义一个类
class Gen<T>
{
private T o;
//构造函数
public Gen(T a)//构造函数
{
o=a;
}
//得到T的类型的名称
public void showTypeName()
{
System.out.println("类型是:"+o.getClass().getName());
// 通过反射机制,我们可以得到T这个类型的很多信息,比如得到成员函数名
Method []m=o.getClass().getDeclaredMethods();//函数的一些信息
//打印
for (int i=0;i<m.length;i++)
{
System.out.println(m[i].getName());
}
}
}