黑马程序员技术交流社区

标题: 关于泛型的小问题,请指教 [打印本页]

作者: 王维波    时间: 2011-11-6 16:28
标题: 关于泛型的小问题,请指教
public abstract class BaseHibernateDao<T> extends HibernateDaoSupport {
        public T create(T entity) throws DataAccessException {
                getHibernateTemplate().save(entity);
                return entity;
        }
        public Object load(Class cls, Serializable id) throws DataAccessException {
                return getHibernateTemplate().load(cls, id);
        }
}

public class CounterDao extends BaseHibernateDao<CounterImpl>{}

对于第一个Create方法使用泛型没问题,但是对于第二个load方法,怎么将型别T的Class信息固化在load方法内部呢,而不需要作为Class cls参数传入了。我试过T.Class,代码提示是有的,但是编译不通过

该贴已经同步到 保持常态0616的微博
作者: 柴亚飞    时间: 2011-11-7 04:31
泛型的作用期间是编译之前和编译中。在编译后,泛型信息被擦除。这就意味着在运行期间是无法得到泛型信息的。
T的固有信息是无法传递到运行期间的。
所有试图在运行期调用类型T的具体类型信息的努力都是无法实现的。

“我试过T.Class,代码提示是有的,但是编译不通过 “,不明白你是这么试的,你能把你编译通不过的代码写上来吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2