泛型类型
泛型是类和接口的一种扩展机制,主要实现参数化类型机制,简单地说,泛型是带一个参数或多个参数的类或者接口。
1.下面定义一个带一个参数的泛型类型,并调用相应在这里插入代码片的方法实现。
//含有一个类型参数的泛型类型
public class Node <T>{
private T value ; //泛型成员
public Node(){} //默认构造方法
public Node(T value){ //带一个参数的构造方法
this.value = value ;
}
public T get(){ //访问方法
return value ;
}
public void set(T value){ //修改方法
this.value = value ;
}
public void showType(){ //显示类型名的方法
System.out.println("T的类型名:" + value.getClass().getName()) ;
}
public static void main(String[] args){
Node <Integer> node = new Node<>() ; //实例化泛型对象
node.set(new Integer(3)) ; //设置泛型对象的值
System.out.println(node.get()) ; //输出访问对象的值
node.showType() ; //输出泛型的类型
Node <Integer> node1 = new Node<>(new Integer(1)) ;
System.out.println(node1.get()) ;
node1.showType() ;
}
}
2.下面定义一个带一个参数的泛型类型实现一个接口。
//含有两个类型参数的泛型类型
interface Entry<K,V>{ //泛型接口
public K getKey() ;
public V getValue() ;
}
public class Pair <K,V> implements Entry<K,V>{//泛型类Pair实现泛型接口Entry
private K key ; //泛型成员
private V value ;
public Pair(){}
public Pair(K key, V value){ //带两个参数的构造方法
this.key = key ;
this.value = value ;
}
@Override
public K getKey() { //访问键的方法
return key;
}
@Override
public V getValue() { //访问值的方法
return value;
}
public void setKey(K key){ //修改键的方法
this.key = key ;
}
public void setValue(V value){ //修值的方法
this.value = value ;
}
public void print(){ //自定义的得到键和值的方法
System.out.println(getKey() + " " + getValue()) ;
}
public static void main(String[] args){
Pair <String,Integer> p1 = new Pair<>() ;//实例化泛型对象p1
p1.setKey("twenty") ; //修改键
p1.setValue(20) ; //修改值
System.out.println(p1.getKey() + " " + p1.getValue()) ; //访问p1对象的键和值
Pair <String,String> p2 = new Pair<>("China","Beijing") ; //实例化泛型对象p2
p2.print(); //调用print()方法打印键值对
}
}