泛型

1、泛型的定义

在集合框架里面大量使用框架。
一个类中的成员变量和成员方法中的使用的类型可能变化,这时候就可以使用泛型,在声明类的时候使用一个特殊的标识表示这些变化的类型。
定义泛型:类名后加"<标识>",例如Node<E>,E标识可能的类型,在类中出现元素类型的地方都使用E表示。
例子:元素类型为任意的节点类
package example5_44;

public class Node<E> {
	private E value; // 节点的值,说明这个地方是个变化的类型
	private Node<E> next;  //表示下一个元素
	public E getValue() {  //返回值类型也和E相关
		return value;
	}
	public void setValue(E value) {
		this.value = value;
	}
	public Node<E> getNext() {
		return next;
	}
	public void setNext(Node<E> next) {
		this.next = next;
	}
}

2、泛型的使用

在使用泛型的类定义对象时,需要明确元素的类型,实例化时也要明确元素类型
例如:Node<Integer>n1=new Node<Integer>();
使用泛型:
package example5_45;

import example5_44.Node;

public class NodeTest {

	public static void main(String[] args) {
		Node<Integer> n1 = new Node<Integer>();
		Node<Integer> n2 = new Node<Integer>();
		n1.setValue(100);
		n2.setValue(200);
		n1.setNext(n2);
		n2.setNext(null);
		Node<Integer> temp = n1.getNext();
		System.out.println(temp.getValue());
	}
}

3、复杂泛型

对元素类型进行限制
限制元素的类型:
package example5_46;

//在这里继承,说明有一定的限制
public class Node<E extends Number> {
	private E value; // 节点的值
	private Node<E> next;  //表示下一个元素
	public E getValue() {
		return value;
	}
	public void setValue(E value) {
		this.value = value;
	}
	public Node<E> getNext() {
		return next;
	}
	public void setNext(Node<E> next) {
		this.next = next;
	}
	public static void main(String args[]){
		Node<Integer> n1 = new Node<Integer>();
		Node<Integer> n2 = new Node<>();
	}
}
posted @ 2017-11-03 22:07  AntarcticPenguin  阅读(190)  评论(0)    收藏  举报
//开启礼花特效的js