那为何要使用匿名内部类

那为何要使用匿名内部类

Think in java上说:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。

它能够非常好的解决多重继承的问题,在我们程序设计中有时候会存在一些使用接口很难解决的问题,这个时候我们可以利用内部类提供的、可以继承多个具体的或者抽象的类的能力来解决这些程序设计问题。

可以这样说,接口只是解决了部分问题,而内部类使得多重继承的解决方案变得更加完整。

ObjectFactory

它的作用就是创建一个类

protected ObjectFactory objectFactory = new DefaultObjectFactory();
public interfaceObjectFactory{
  /**
  * 设置一些额外的属性 通过在mybatis-config.xml中objectFactory中properties属性标签设置 , 在初始化mybatis是就会触发这个方法
  */  
void setProperties(Properties properties);

  /**  
  * 已默认的构造函数(无参构造)实例化对象  
  * @return
  */  
<T> Tcreate(Class<T> type);

  /**  
* 指定的构造函数实例化对象  
*@paramtype Object type  *@paramconstructorArgTypes Constructor argument types  
*@paramconstructorArgs Constructor argument values  
*@return
*/  
<T> Tcreate(Class<T> type, List<Class<?>> constructorArgTypes, List<Object> constructorArgs);

  /**  
* 判断是否是集合类型。只要能存储其他元素的都叫做集合  
* 内部通过isAssignableFrom判断是否继承值Collection类  
*@paramtype Object type  
*@returnwhether it is a collection or not  *@since3.1.0  
*/  
<T> boolean isCollection(Class<T> type);
}

使用的例子

比如在学校系统中,我们学生除了有基础信息,我们还想临时添加一个成绩的属性用来表示最近一次成绩总分。这个时候我们就可以通过自定义ObjectFactory来实现了。

在创建好对象后在去查询数据进行填充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容