问题描述
再网上下的一个ssh框架例子,对里面泛型的使用感到很困惑我简单的描述一下publicinterfaceBaseDao<T,IDextendsSerializable>{publicabstractvoidsave(Tt);}publicclassBaseDaoImpl<T,IDextendsSerializable>implementsBaseDao<T,ID>{publicvoidsave(Tt){this.getSession().save(t);}}看到这种结构我第一反应用法应该是:@AutowiredprivateBaseDao<SyRight,String>baseDao;可这是错误的必须publicclassSyRightDaoImplextendsBaseDaoImpl<SyRight,String>implementsSyRightDao必须通过这样继承来才行我想这里dao使用泛型肯定是想做一个通用的dao,避免每一个类都要建一个dao而这里的泛型用法,虽然里面的方法可以不重复写,但依旧每个类都对应一个dao,感觉很不方便我把泛型换成Object,行不行????这样的话,通用的就一个dao就行了。
解决方案
解决方案二:
也可以啊,使用范型和Object的区别其实在于当你使用范型之后,你获取模型值,可以直接获取到具体类型,不必进行强制类型转换而使用Object时,你就需要自己进行强制类型转换了
时间: 2024-08-07 15:39:11