package com.jdk150.bean;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
//限制使用泛型可用类型 当没有指定限制类型时默认为Object(继承或实现某个类或接口只能使用extends)
//限制泛型只能为继承或实现T后面那个接口的类或子类 才能给T赋值
public class ListGenericsFoo<T extends List> {
private T[] fooArray;
public T[] getFooArray() {
return fooArray;
}
public void setFooArray(T[] fooArray) {
this.fooArray = fooArray;
}
public static void main(String[] args){
ListGenericsFoo<LinkedList> linkl = new ListGenericsFoo<LinkedList>();
ListGenericsFoo<ArrayList> arrayl = new ListGenericsFoo<ArrayList>();
LinkedList[] link = new LinkedList[10];
linkl.setFooArray(link);
ArrayList[] array = new ArrayList[10];
arrayl.setFooArray(array);
//由于HashMap 并没有实现List接口 所以报错
// ListGenericsFoo<HashMap> hash = new ListGenericsFoo<HashMap>();
}
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
//限制使用泛型可用类型 当没有指定限制类型时默认为Object(继承或实现某个类或接口只能使用extends)
//限制泛型只能为继承或实现T后面那个接口的类或子类 才能给T赋值
public class ListGenericsFoo<T extends List> {
private T[] fooArray;
public T[] getFooArray() {
return fooArray;
}
public void setFooArray(T[] fooArray) {
this.fooArray = fooArray;
}
public static void main(String[] args){
ListGenericsFoo<LinkedList> linkl = new ListGenericsFoo<LinkedList>();
ListGenericsFoo<ArrayList> arrayl = new ListGenericsFoo<ArrayList>();
LinkedList[] link = new LinkedList[10];
linkl.setFooArray(link);
ArrayList[] array = new ArrayList[10];
arrayl.setFooArray(array);
//由于HashMap 并没有实现List接口 所以报错
// ListGenericsFoo<HashMap> hash = new ListGenericsFoo<HashMap>();
}
}