我有这样的代码:为什么需要那么泛型类型键入reasure虽然我们可以使用对象POJO的
public class Crate<T> {
private T contents;
public T emptyCrate() {
return contents;
}
public void packCrate(T contents)
{
this.contents = contents;
}
}
现在我们知道 - 到底这将是“转化”成下面的代码:
public class Crate {
private Object contents;
public Object emptyCrate() {
return contents;
}
public void packCrate(Object contents)
{
this.contents = contents;
}
}
那么为什么我们需要创建一个泛型,如果我已经可以创建一个像Object
Based类?
得到答案。如果我们创建了一个对象pojo,那么在编译时的子方法被隐藏起来 –
因为如果你想让你的'Crate'包含'Integer','String',无论如何,你必须将'emptyCrate()'的结果'Integer','String'或其他 - 你必须记住它包含的数据类型。 –
编译器也会提示你错误,如果你试图插入错误的类型。而且不仅在运行时。泛型是程序员对类型安全的保险。在java 1.5 – JacksOnF1re