标签:
class Info<T>{ 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 GenericsDemo12{ public static void main(String args[]){ Info<String> i = new Info<String>() ; // 使用String为泛型类型 i.setVar("lx") ; // 设置内容 fun(i) ; } public static void fun(Info<Object> temp){ // 接收Object泛型类型的Info对象 System.out.println("内容:" + temp) ; } };
class Info<T>{ 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 GenericsDemo13{ public static void main(String args[]){ Info<String> i = new Info<String>() ; // 使用String为泛型类型 i.setVar("WWWW") ; // 设置内容 fun(i) ; } public static void fun(Info temp){ // 接收Object泛型类型的Info对象 System.out.println("内容:" + temp) ; } };发现有警告提示:
class Info<T>{ 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 GenericsDemo14{ public static void main(String args[]){ Info<String> i = new Info<String>() ; // 使用String为泛型类型 i.setVar("MLDN") ; // 设置内容 fun(i) ; } public static void fun(Info<?> temp){ // 可以接收任意的泛型对象 System.out.println("内容:" + temp) ; } };能照常运行,而且不会有警告。
class Info<T>{ 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 GenericsDemo15{ public static void main(String args[]){ Info<?> i = new Info<String>() ; // 使用String为泛型类型 i.setVar("MLDN") ; // 设置内容 } };
class Info<T>{ 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[]){ Info<Integer> i1 = new Info<Integer>() ; // 声明Integer的泛型对象 Info<Float> i2 = new Info<Float>() ; // 声明Float的泛型对象 i1.setVar(30) ; // 设置整数,自动装箱 i2.setVar(30.1f) ; // 设置小数,自动装箱 fun(i1) ; fun(i2) ; } public static void fun(Info<? extends Number> temp){ // 只能接收Number及其Number的子类 System.out.print(temp + "、") ; } };
class Info<T>{ 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 GenericsDemo18{ public static void main(String args[]){ Info<String> i1 = new Info<String>() ; // 声明String的泛型对象 i1.setVar("hello") ; fun(i1) ; } public static void fun(Info<? extends Number> temp){ // 只能接收Number及其Number的子类 System.out.print(temp + "、") ; } };
class Info<T extends Number>{ // 此处泛型只能是数字类型 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 GenericsDemo19{ public static void main(String args[]){ Info<Integer> i1 = new Info<Integer>() ; // 声明Integer的泛型对象 } };如果现在在使用Info的时候设置成了String类型,则在编译的时候就会出现错误。
class Info<T extends Number>{ // 此处泛型只能是数字类型 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 GenericsDemo20{ public static void main(String args[]){ Info<String> i1 = new Info<String>() ; // 声明Integer的泛型对象 } };
class Info<T>{ 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[]){ Info<String> i1 = new Info<String>() ; // 声明String的泛型对象 Info<Object> i2 = new Info<Object>() ; // 声明Object的泛型对象 i1.setVar("hello") ; i2.setVar(new Object()) ; fun(i1) ; fun(i2) ; } public static void fun(Info<? super String> temp){ // 只能接收String或Object类型的泛型 System.out.print(temp + "、") ; } };
class Info<T>{ 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 GenericsDemo22{ public static void main(String args[]){ Info<Integer> i1 = new Info<Integer>() ; // 声明Integer的泛型对象 i1.setVar(30) ; fun(i1) ; } public static void fun(Info<? super String> temp){ // 只能接收String或Object类型的泛型 System.out.print(temp + "、") ; } };
class Info<T>{ 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 GenericsDemo23{ public static void main(String args[]){ Info<String> i1 = new Info<String>() ; // 泛型类型为String Info<Object> i2 = null ; i2 = i1 ; } };
标签:
原文地址:http://blog.csdn.net/u013087513/article/details/51714409