Java 单例模式使用
编辑Java 单例模式使用,java,design-patterns,singleton,Java,Design Patterns,Singleton,编辑 此编辑版本运行良好。setValue可以通过在执行某些赋值后返回类的实例来链接 publicsingletonsetvalue(字符串、对象){ //做一些作业 归还这个; } 方法getInstance()正在返回对象类型值 您需要将对象强制转换为: ((Singleton)Singleton.getInstance()).setValue(…) 如果希望类像生成器一样工作,请更改方法以返回单例类型对象:publicstaticsingletongetinstance(){..}以及se
此编辑版本运行良好。setValue可以通过在执行某些赋值后返回类的实例来链接
publicsingletonsetvalue(字符串、对象){
//做一些作业
归还这个;
}
方法getInstance()正在返回对象类型值
您需要将对象强制转换为:
((Singleton)Singleton.getInstance()).setValue(…)
如果希望类像生成器一样工作,请更改方法以返回单例类型对象:
publicstaticsingletongetinstance(){..}
以及setValuepublicstaticsingletonsetvalue(..)
能够像在代码中编写的那样调用多个集合。您认为错误消息想告诉您什么?您想创建一个singleton和builder模式吗?是的,这有助于停止该错误,但现在我猜这里出了什么错:公共静态singleton getInstance(){if(instance==null){instance=new Singleton();}return instance.getInstance();}因为它在Singleton.getInstance()处的线程“main”java.lang.StackOverflower中给出StackOverflower错误:异常不确定代码是否以这种方式正确,也许您应该返回instance
而不是instance.getInstance()
我已经像上面那样更改了它。现在它既不给出错误也不给出输出。您没有在setValue方法中设置值。`public Singleton setValue(String String,Object Object){values.put(String,Object);返回此;}`
public Singleton setValue(String string, Object object) {
values.put(string, object);
return this;
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}