package com.fanxing.neibulei; /** * * @author xiaxiaorui * *泛型 受限泛型 *http://developer.51cto.com/art/200909/153983.htm */ class Info2<T> { private T var; // 定义泛型变量 public T getVar() { return var; } public void setVar(T var) { this.var = var; } public String toString(){ // 直接打印 return var.toString(); } } public class GenericsDemo17 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Info2<Integer> info1 = new Info2<Integer>(); // 声明Integer的泛型对象 Info2<Float> info2 = new Info2<Float>(); // 声明Float的泛型对象 Info2<String> info3 = new Info2<String>(); info1.setVar(30); // 设置整数,自动装箱 info2.setVar(30.1F); // 设置小数,自动装箱 info3.setVar("俺是字符串,不能被受限的FUN组装"); fun(info1); fun(info2); // fun(info3); //受限了,不能调用这个 } /** * 可以接收任意的泛型对象(// 只能接收Number及其Number的子类) * @param temp */ public static void fun(Info2<? extends Number> temp){ // 只能接收String或Object类型的泛型 //public static void fun(Info2<? super String> temp){ System.out.println("内容:"+temp); } }