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>();
}
}
Java泛型限制实践
本文介绍了一个Java泛型实例,通过定义一个通用类来限制泛型参数必须是List的子类或实现类,并演示了如何正确使用不同类型的List实例化该类。
1270

被折叠的 条评论
为什么被折叠?



