仅为类创建一个对象并重用相同的对象

我想只创建一个类的一个对象,并一遍又一遍地重用同一个对象。 有没有有效的方法来做到这一点。

我怎样才能做到这一点?

public final class MySingleton { private static volatile MySingleton instance; private MySingleton() { // TODO: Initialize // ... } /** * Get the only instance of this class. * * @return the single instance. */ public static MySingleton getInstance() { if (instance == null) { synchronized (MySingleton.class) { if (instance == null) { instance = new MySingleton(); } } } return instance; } } 

这通常使用Singleton模式实现,但实际需要的情况非常罕见,这不是一个无害的决定。

在做出决定之前,您应该考虑其他解决方案 。

关于为什么静态变量可能是邪恶的另一篇文章也是一个有趣的读物(单例是一个静态变量)。

使用一个实例创建类的最简单方法是使用enum

 public enum Singleton { INSTANCE } 

你可以将它与史蒂夫泰勒的答案进行比较,看看它比其他选择简单多了。

顺便说一句:我只建议你使用无国籍单身人士。 如果你想要有状态的单身,你最好使用dependency injection。

这将是Singleton模式 – 基本上你会阻止使用私有构造函数进行构造,并使用静态同步的getter“获取”实例,如果它不存在则会创建单个实例。

干杯,

有一种名为Singleton的设计模式。 如果您实施它,您将获得所需。

看看这个 ,看看实现它的不同方法。

您正在寻找Singleton模式 。 阅读维基百科文章,您将找到如何在Java中实现它的示例。

也许你也想了解更多关于设计模式的知识,然后我建议你阅读“Head First Design Patterns” 一书或Erich Gamma等人的原始设计模式书 (前者提供Java示例,后者不是’ T)

是。 它被称为Singleton类。 您可以创建一个且唯一的实例,并在整个代码中使用它。

您正在寻找的是Singleton模式 。