普通类的对象和泛型类的对象之间有什么区别吗?

时间:2014-09-19 05:50:50

标签: java

MyClass的对象与类MyClass<String>的对象之间是否有任何区别,除了一个是'原始类型'而另一个是'通用类型'。如果我们称之为'在Raw类型'MyClass'的对象上的getClass()'方法和在Generic Type MyClass<String>的对象上都将返回相同的答案。那究竟是什么区别呢?感谢

class MyClass
{

}


class MyClass<String>
{

}

1 个答案:

答案 0 :(得分:0)

Generics提供编译时类型安全性,并确保您只在集合中插入正确的Type并避免在运行时出现ClassCastException。

现在举例来说明我提供此代码的简单优势

public class Box<T> {

  private T t;

  public void add(T t) {
    this.t = t;
  }

  public T get() {
    return t;
  }

  public static void main(String[] args) {
     Box<Integer> integerBox = new Box<Integer>();
     Box<String> stringBox = new Box<String>();

     integerBox.add(new Integer(10));
     stringBox.add(new String("Hello World"));

     System.out.printf("Integer Value :%d\n\n", integerBox.get());//10
     System.out.printf("String Value :%s\n", stringBox.get());//Hello World
  }
}

有关详细信息,请查看this link