请问大神是什么原因造成的两个结果不同啊?

来源:-

慕粉1464699512

2016-08-18 19:53

package singletonpattern;

/**

 * 懒汉模式

 * @author Administrator

 *

 */

public class Singleton {

private static Singleton singleton ;

private Singleton(){

}

public static Singleton getSingleton(){

if(singleton.equals(null))

singleton = new Singleton() ;

return singleton ;

}

}

/**

出现java.lang.NullPointerException

当把上边的粗体字改为if(singleton == null)后,输出结果正常。我想请教是什么原因啊

*/

写回答 关注

2回答

  • leowei
    2016-11-03 16:23:24

    因为只有对象才能调用equals 方法!

    刚开始你的对象是null

    没有指向对象,哪来的方法啊!

    equals 是属于对象的! 

  • SimplePie
    2016-10-15 20:53:21

    应为对象为null所以没有方法调用 报出空指针异常

模式的秘密---单例模式

单例模式是在Java中最重要模式之一,让我们揭开单例模式神秘面纱

74402 学习 · 108 问题

查看课程

相似问题