日期:2014-05-20  浏览次数:20626 次

Java泛型的一个问题
Java code
class Ge<T> {}

public class T3Generic {
    public static void main (String[] args){
        new Ge();
                new Ge<Integer>();
    }
}


问下,创建一个泛型类的对象,可以不给出泛型参数么?

------解决方案--------------------
可以不指定内部的数据类型,在编译的时候会出现不安全操作的警告信息,但是不影响程序的执行,这是因为,如果你不指定泛型的类型,系统会默认为用Object类来接受。还是加上比较好呢
------解决方案--------------------
public class Gen<T> { 
 private T ob; //定义泛型成员变量 

 public Gen(T ob) { 
  this.ob = ob; 
 } 

 public T getOb() { 
  return ob; 
 } 

 public void setOb(T ob) { 
  this.ob = ob; 
 } 

 public void showTyep() { 
  System.out.println("T的实际类型是: " + ob.getClass().getName()); 
 } 


public class GenDemo { 
 public static void main(String[] args){ 
 //定义泛型类Gen的一个Integer版本 
 Gen<Integer> intOb=new Gen<Integer>(88); 
 intOb.showTyep(); 
 int i= intOb.getOb(); 
 System.out.println("value= " + i); 

 System.out.println("----------------------------------"); 

 //定义泛型类Gen的一个String版本 
 Gen<String> strOb=new Gen<String>("Hello Gen!"); 
 strOb.showTyep(); 
 String s=strOb.getOb(); 
 System.out.println("value= " + s);