java中的使用的疑问,以下代码有哪些区别呢,求大神们指教啊。

java中<T>的使用的疑问,以下代码有哪些区别呢,求大神们指教啊。

问题描述:

public T deleteObject(T entity){
hibernateTemplate.delete(entity);
return entity;
}

public Object deleteObject(Object entity){
    hibernateTemplate.delete(entity);
    return entity;
}

这两种写法实现的功能一样,但是使用泛型的好处是,你返回的是具体的类型。不需要类型转换,就可以直接访问对象的成员。
同时确保传入传出参数的类型一致。

使用泛型的方法,在获得返回值时,会获得一个T类型的值,比如传入Person实例,那么获得返回值也是Person类型。
但是如果用Object的,那么首先,需要对返回值进行强转,如 (Person)deleteObject(person1);其次,编译器也不能帮助你检查,是否代码有类型转换的问题。