Java 泛型

什么是泛型。(泛型是可以表示好多个类型的类型)
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这是数据类型可以
用在类。接口和方法中。分别称为泛型类,泛型方法,泛型接口。泛型的好处是在编译的时候
检查类型安全,并且强制所有的转换都是自动的隐式的。提高代码的重用率

package FanXing;
import java.util.ArrayList;
/**
* Created by admin on 2017/6/24.
* 介绍泛型
*
*/
public class FanXing {
public static void main(String[] args){
// ArrayList声明 里面存放的是Cat类
ArrayList array = new ArrayList();
// 创建一个猫类
Cat cat = new Cat();
// 将这个猫类,放到ArrayList当中, 此时ArrayList里面存放的是猫的对象
array.add(cat);
Cat myCat = array.get(0);
System.out.println(myCat.getName());

}

}
class Dog{
private String color;
private String name;
public String getName(){
return name;
}
public String getColor(){
return color;
}
public void setName(String newName){
name=newName;
}
}

class Cat{
private String name;
private int age;
public String getName(){
return name;
}
public void setName(String newName){
name = newName;
}
public int getAge(){
return age;
}
}

使用泛型提高代码的复用率,假设你现在面临一个需求是,你需要接收两个参数,然后将这个参数
组成键值对。 但是你又不知道这两个参数是什么类型的。可能你就会这么写。先判断一下数据是什么
类型,然后调用不同的方法.比如类似于下面的
这样代码的就会变得很冗余。

class stringDict{
     private String key;
     private String val;
     public String get(){
       return val;
     }
     public void set(String key, String val){
       val = val;
     }
}

class intDict{
     private int key;
     private int val;
     public int get(){
       return val;
     }
     public void set(int key, int val){
       val = val;
     }
}

通过泛型来解决:

class Dict{
     private K key;
     private V val;
     public V get(){
       return val;
     }
     public void set(K key, V val){
       val = val;
     }
}

泛型的优点
1. 类型安全
2.向后兼容
3.层次清晰
4.性能较高

你可能感兴趣的:(java泛型,java)