package Demo;
// 受限泛型
class Info17 {
private T var; // 定义泛型变量
public void setVar(T var) {
this.var = var;
}
public T getVar() {
return this.var;
}
public String toString() { // 直接打印
return this.var.toString();
}
}
public class GenericsDemo17 {
public static void main(String args[]) {
Info17 i1 = new Info17(); // 声明Integer的泛型对象
Info17 i2 = new Info17(); // 声明Float的泛型对象
i1.setVar(30); // 设置整数,自动装箱
i2.setVar(30.1f); // 设置小数,自动装箱
fun(i1);
fun(i2);
}
public static void fun(Info17 extends Number> value) { // 只能接收Number及其Number的子类
System.out.println(value);
}
}
package Demo;
// 受限泛型
class Info21 {
private T var; // 定义泛型变量
public void setVar(T var) {
this.var = var;
}
public T getVar() {
return this.var;
}
public String toString() { // 直接打印
return this.var.toString();
}
}
public class GenericsDemo21 {
public static void main(String args[]) {
Info21 i1 = new Info21(); // 声明String的泛型对象
Info21 i2 = new Info21(); // 声明Object的泛型对象
i1.setVar("hello");
i2.setVar(new Object());
fun(i1);
fun(i2);
}
public static void fun(Info21 super String> value) { // 只能接收String或Object类型的泛型
System.out.println(value);
}
}