一般用于限制操作,及子类或自身。我们在上文的泛型方法中已经使用过,可以参考,看实例:
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)); } } 比较简单,都是细节。