我的项目中有一个令人不安的单身人士问题。 我使用变量String name创建了一个名为Singleton(多么具有创造性)的类;
然后我创建了另一个名为Player的类,我将其命名为user。
我想要保存在Singleton中的数据的主类。
问题是,只有当我在主类中使用它时,它才会保存用户的名称..这似乎不适用于其他类。
是什么原因?怎么解决? 感谢您的任何建议:)
这是我的单身人士课程:
private String name;
public void setName(String name) {
this.name = name;
}
public String getName( ) {
return
this.name;
}
private static Singleton instance = null;
protected Singleton() {
}
public static Singleton getInstance() {
if(instance == null)
{
instance = new Singleton();
}
return instance;
}
这是一个以用户名命名的课程:
public class NewMain {
public NewMain() {
String u_name="agrfd";
Singleton.getInstance().setName(u_name);
}
}
这里是主要的类,我想保存来自Singleton的所有数据(这里我只是尝试打印它以确保它有效):
public class NewMain1 {
public static void main(String[] args) {
Singleton singleton = new Singleton();
System.out.println(singleton.getInstance().getName());
}
}
答案 0 :(得分:0)
您可能正在使用Singleton设计对象的不同实例。只需使用Singleton模式。
示范性实施:
public class ClassicSingleton {
private static ClassicSingleton instance = null;
protected ClassicSingleton() {
// Exists only to defeat instantiation.
}
public static ClassicSingleton getInstance() {
if(instance == null) {
instance = new ClassicSingleton();
}
return instance;
}
}
您的用法应该是:
public class NewMain1 {
public static void main(String[] args) {
new NewMain(); // execute constructor with setter on creation first
System.out.println(Singleton.getInstance().getName());
}
}