泛型记录

泛型所要注意的点

1.泛型使用格式

  1. 泛型类

public class Person<T>{
	private T date;
	public T getData() { 
		return data; 
	}
	public void setData(T data) { 
		this.data = data;
	}
}
  1. 泛型方法

public static <T> void main(T t){
}
  1. 泛型接口

 public interface Test()<T>{
 	T print();
 }
 //指定类型
 public class Main implements Test<String>{
 	private String date;
 	@Override
 	public String print(){
 		return date;
 	}
 }
 //不指定类型
 public class Main implements Test<T>{
 	private T date;
 	@Override
 	public T print(){
 		return date;
 	}
 }

2.泛型限制类型

格式<T extends 类或接口1 & 接口2>

3.通配符?

使用?代替方法具体的类型实参。 
1 <? extends Parent> 指定了泛型类型的上届 
2 <? super Child> 指定了泛型类型的下届 
3 <?> 指定了没有限制的泛型类型
//Plate为一个类,Apple是Fruit的子类
Plate<? extends Fruit> p = new Plate<Apple>();//上界限定
Plate<? super Fruit> p = new Plate<Fruit>();//下界限定

4.注意

  • 泛型只在编译期间起作用,在编译之后程序会采取去泛型化的措施。
上一篇:[LeetCode] “全排列”问题系列(一) - 用交换元素法生成全排列及其应用,例题: Permutations I 和 II, N-Queens I 和 II,数独问题


下一篇:HyperLPR车牌识别库代码分析(5)