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