很多班级之间的单身人士?

时间:2015-03-28 19:02:10

标签: java singleton

我的项目中有一个令人不安的单身人士问题。 我使用变量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());


}
}

1 个答案:

答案 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;
   }
}

Source

您的用法应该是:

public class NewMain1 {
    public static void main(String[] args) {
        new NewMain(); // execute constructor with setter on creation first
        System.out.println(Singleton.getInstance().getName());
    }
}