美文网首页
那为何要使用匿名内部类

那为何要使用匿名内部类

作者: fd32e41da0cf | 来源:发表于2021-03-10 11:42 被阅读0次

    那为何要使用匿名内部类

    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来实现了。

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

    相关文章

      网友评论

          本文标题:那为何要使用匿名内部类

          本文链接:https://www.haomeiwen.com/subject/mzhwqltx.html