java学习笔记——泛型

泛型总结

一、泛型的益处:

1、口径宽,泛指数据类型,安全性高,可以匹配多种类型的数据。

2、可以提高代码的重用率。

 

 

二、示例:

public static void main(String[] args) {

       // TODO Auto-generated method stub

扫描二维码关注公众号,回复: 1317109 查看本文章

       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());        

        }

   

    }

   

猜你喜欢

转载自yuyongjia.iteye.com/blog/1676150