我测试了单例模式的实现,觉得无法弄清楚IntelliJ为什么向我抛出错误。这是代码。
public class CowSingleton {
private static CowSingleton unique;
private CowSingleton(){}
//Only create new object if NOT already instantiated.
public static CowSingleton getInstance(){
if (unique == null){
//creating unique object
unique = new CowSingleton();
System.out.println(unique);
}
//return Object
return unique;
}
public String cowMoo(String str)
{
return str;
}
}
这是我怎么称呼它:
CowSingleton cowSingleton = new CowSingleton.getInstance();
System.out.println(cowSingleton.cowMoo("Moooooo"));
我得到的错误:
"java: /Users/gpendleton/Personal/MyAnimals/src/Main.java:25: cannot find symbol
symbol : class getInstance
location: class CowSingleton"
最佳答案
您不是自己创建实例;而是您自己创建实例。您将推迟使用singleton类本身来为您创建它。您的调用getInstance()
的代码不需要new
关键字。毕竟,您正在调用静态方法,而不是自己创建对象。
删除new
关键字。
CowSingleton cowSingleton = CowSingleton.getInstance();
关于java - 我实现单例模式时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21587066/