一般用于限制操作,及子类或自身。我们在上文的泛型方法中已经使用过,可以参考,看实例:
package com.ws.generic;
import java.util.ArrayList;
import java.util.List;
// 类的继承关系 galaxy - sun、bluestar
// |
// earth
class galaxy{
}
class bluestar extends galaxy{
}
class sun extends galaxy{
}
class earth extends sun{
}
/**
* extends : 泛型的上限 <= 即子类或自身
* 1、一般用于 限制操作
* 2、不能使用在 添加数据上面,一般都是读取操作
*/
public class testtpf {
public static void main(String[] args) {
//泛型类
Test<galaxy> t1 = new Test<galaxy>();
Test<sun> t2 = new Test<sun>();
Test<earth> t3 = new Test<earth>();
//调用方法
List<galaxy> list = new ArrayList<galaxy>();
test(list);
List<sun> list2 = new ArrayList<sun>();
test(list2);
List<earth> list3 = new ArrayList<earth>();
test(list3);
List<? extends galaxy> list4 = new ArrayList<galaxy>();
test(list4);
List<? extends sun> list5 = new ArrayList<sun>();
test(list5);
}
//泛型类
static class Test<T extends galaxy>{
}
public static void test(List<? extends galaxy> list){
//不能填加任何对象
//list.add(new sun());
list.add(null);
System.out.println(list.get(0));
}
}
比较简单,都是细节。