泛型

泛型: 参数化类型

定义:

  • 将数据类型由原来的具体类型变成一个参数,(类似于方法中的变量参数,可以称为类型实参),
  • 在使用/调用时,传入具体的类型,(类型实参)。

作用位置:
类,接口,方法

泛型类:
特点:
如果未指定泛型类型,则默认为java.lang.Object。
Java中的集合框架所涉及的接口和类,大都是泛型接口和泛型类。
利用泛型类、泛型接口的实现类创建对象,可以不指定泛型类型。
泛型

public class Generic<T> {
	T key;

	public Generic(T key) {
		super();
		this.key = key;
	}

	public T getKey() {
		return key;
	}

	public void setKey(T key) {
		this.key = key;
	}
  public static void main(String[] args) {
	Generic<String> genericString =new Generic<String>("abc");
	Generic<Integer> genericInteger =new Generic<Integer>(123);
	System.out.println(genericInteger.getKey());
	System.out.println(genericString.getKey());
	
	Generic genericObject =new Generic("Object");
	System.out.println(genericObject.getKey());
	
	  	Generic g1 =new Generic(123);
	Generic g2 =new Generic(12.3);
	Generic g3 =new Generic('1');
	System.out.println(g1.getClass());
	System.out.println(g2.getClass());
	System.out.println(g3.getClass());
	/*
	 * 结果:class Sdut.Generic
		   class Sdut.Generic
		   class Sdut.Generic
		结论:泛型只在编程阶段有效
		 因此:不能 对确切的泛型类型使用instanceof操作
		   例如:if(genericInteger instanceof Generic<Integer>) 错误
		   正确:if(genericInteger instanceof Generic)
	 * */
  }	
}

泛型的上下边界
泛型

public class Generic<T extends Number> {//定义了上边界Number类(数值类)
上一篇:泛型


下一篇:Java泛型