首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

java结构特性与泛型结合的灵活运用

2012-10-15 
java构造特性与泛型结合的灵活运用特性一:看一个构造的简单事例:(此示例来与网上,这里借用下)我们可以看到

java构造特性与泛型结合的灵活运用
特性一:
看一个构造的简单事例:
(此示例来与网上,这里借用下)





我们可以看到上面程序的打印结果:
Son says, I am null
Son's name is FATHER
Son says, I am SON
Son's name is SON

因此我们可以推断出它的执行过程:
(1)在构造子类事例时,先执行父类的构造方法,调用whoAmI()
(2)而whoAmI()被子类重写,所以调用子类的whoAmI()方法
(3)子类此时还没有被初始化,所以实例变量(非类变量)为空
(4)然后父类执行方法tellName(name),name为Father,被子类重写
(5)执行子类的的tellName(name),传入father,所以打印了Son's name is FATHER
(6)第二次被构造的时候才打印Son says, I am SON,  Son's name is SON


特性二:
在javaee的框架设计中,我们为了代码的复用,往往会把最基础的CRUD方法封装在一个类中,但是当我们传入泛型到DomainDao中的时候我们需要得到泛型中的原始类,这里我们起名为DomainDao
public class DomainDao<T, PK extends Serializable> implements DatabaseDao<T, PK>{@SuppressWarnings("unchecked")public DomainDao(boolean queryCacheable) {this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];//this.iQP(queryCacheable);}}@Overridepublic void deleteById(PK id) {entityManager.remove(entityManager.getReference(persistentClass, id));//updateCache();}@Overridepublic T find(PK id) {return entityManager.find(persistentClass, id);}

热点排行