泛型和Object的区别?

泛型声明

public <T> T doSomeThing(T t){
    return t;
}

Object声明

public Object doSomeThing(Object obj){
    return obj;
}

泛型引用

String result = doSomeThing("参数是String");

Object引用

String result = (String)doSomeThing("参数是String");

使用泛型,有2个好处:

1.不需要做强制类型转换

2.编译时更安全。如果使用Object类的话,你没法保证返回的类型一定是Foo,也许是其它类型。这时你就会在运行时得到一个类型转换异常(ClassCastException)

猜你喜欢

转载自www.cnblogs.com/uzxin/p/12047316.html