读书人

Java泛型的一个有关问题

发布时间: 2012-03-28 15:40:03 作者: rapoo

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);
}
}

读书人网 >J2SE开发

热点推荐