JAVA- 泛型

Posted RZ_Lee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA- 泛型相关的知识,希望对你有一定的参考价值。

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型裸眼指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。Java语言引入泛型的好处是安全简单。

泛型的定义。泛型可以解决数据类型的安全性问题,它主要的原理是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型,这样在类声明或实例化的时候只要指定好需要的类型即可。

  1.泛型类的定义格式:

访问权限    class    类名称<泛型类型1,泛型类型2,...>{
   访问权限    泛型类型标识    变量名称;
   访问权限    泛型类型标识    方法名称(){};
   访问权限    返回值类型声明    方法名称(){};
}


public class  Person<T1,T2>{         //此处指定了两个泛型类型        
    private    T1    name;              //此变量的类型由外部决定
    private    T2    age;                 //此变量的类型由外部决定
    public    T1    getName(){
      return    name;    
    }
    public    void setName(T1 name){
      this.name=name;
    }
    public    T2    getAge(){
      return    age;
    }
    public    void    setAge(T2 age){
      this.age=age;
    }

  2.泛型对象的定义格式:

类名称<具体类>    对象名称=new    类名称<具体类>();

public class GenericTest{
    public static void main(String args[]){
        Person<String,Integer>    t = null;      //定义两个泛型类型的对象    
         t = new  Person<String,Integer>();     //里面的name为String, age为Integer
         t.setName("英雄");              //设置第一个内容的值
        t.setAge(23);                 //设置第二个内容的值
        System.out.println("姓名:"+t.getName()); //取得信息
        System.out.println("年龄:"+t.getAge());  //取得信息
    }

}

  3.构造方法应用泛型的格式:

访问权限    构造方法(<泛型类型>    参数名称){
  ......  
}

  说明:如果一个类中有多个属性需要使用不同的泛型声明,则可以在声明类的时候指定多个泛型类型。

泛型的作用。使用泛型可以解决数据安全问题,避免了类型转换异常的发生。


 

比较经下两个语句:

t    =    new    Person<String,Integer>();  //里面的name为String,age为Integer
t    =    new    Person<String,int>();    //里面的name为String,age为int

为什么不能用下面的替换上面的?

Note:

  (1)在泛型的指定中是无法直接指定基本数据类型的,必须设置成一个类,因此在设置一个数字的时候就必须使用包装类。

  (2)在泛型应用中最好在声明类的同时指定好其内部的数据类型,如“Info<String>”;如果不指定类型,用户在使用这样的类时就会出现不安全的警告信息。

以上是关于JAVA- 泛型的主要内容,如果未能解决你的问题,请参考以下文章

201621123062《java程序设计》第九周作业总结

什么意思 在HashMap之前 ? Java中的泛型[重复]

这个嵌套类构造函数片段可以应用于泛型类吗?

201621123037 《Java程序设计》第9周学习总结

Java——泛型

作业09-集合与泛型