A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© joeywr 中级黑马   /  2015-8-21 21:48  /  546 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   今天看了一下commons-logging的源码,看到Log接口的实现类的时候,发现一个问题,在这些实现类的构造方法中,为成员变量name和logger赋值之前,都会先把它们置为null。以Log4JLogger为例吧:

public class Log4JLogger implements Log, Serializable {
        private transient Logger logger;
        private String name;
        public Log4JLogger() {
                logger = null;
                name = null;
        }

        public Log4JLogger(String name) {
                logger = null;
                this.name = null;
                this.name = name;
                logger = getLogger();
        }

        public Log4JLogger(Logger logger) {
                this.logger = null;
                name = null;
                name = logger.getName();
                this.logger = logger;
        }
//.......getter、setter等其他代码.........
}
这样做有什么好处呢?

评分

参与人数 1黑马币 +10 收起 理由
小朱 + 10 赞一个!

查看全部评分

3 个回复

倒序浏览
就看源码了啊  不错哦
回复 使用道具 举报
总结了下
这个还是要看具体的类型,
例如基本类型 ,全局变量  int a;   a的值默认为 0;
                            全部变量 String str;str的默认值为null;
                            static boolean flag;   flag的默认值为false;
然后自己试了一下,查了下具体默认值
如果 只声明对象类型的引用,那引用指向 null
回复 使用道具 举报
如果不把它们设置成相应的初始化值,而它们又要存在,那该设置成什么???
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马