这可能是一个愚蠢的问题,但我不知道它的答案,我不知道在哪里搜索答案,所以如果有人可以帮助我会很好。
我有一个类(让我们命名为A),具有不同的成员和方法。我在另一个类中使用此类的方法(让我们将其命名为B)。
对于每个创建的B-Object,我想使用A的SAME实例。这可能吗? 实际上我在B中有一个构造函数,我称之为A a = new A();当然,我总是得到这个班级的不同实例。
我现在该怎么改变这个?我知道可以用spring框架解决它(将相同的对象注入到B的实例中),但我无法使用它。怎么还能解决这个问题?
非常感谢你的帮助! : - )
答案 0 :(得分:6)
是的,可能。您需要定义一个静态的classA实例,并在任何地方使用它。
所以有多种方法可以做到这一点:
public class ClassA {
public static ClassA classAInstance = new ClassA();
}
然后你可以做的任何地方
ClassA.classAInstance.whatever();
这很简单,但对您来说可能已经足够了。
如果您确实想使用单例模式,请查看here以获取Java示例。这种方法的优点是它确保您只有1个classA实例。
答案 1 :(得分:4)
详细说明其他答案:
public class A
{
private static A instance;
private A()
{
...
}
public static A getInstance()
{
if (instance == null)
instance = new A();
return instance;
}
...
public void doSomething()
{
...
}
}
然后像这样打电话给B:
A.getInstance().doSomething();
答案 2 :(得分:2)
听起来你可能希望A成为Singleton。
在软件工程中,单例模式是一种设计模式,用于通过将类的实例化限制为一个对象来实现单例的数学概念。
这意味着您必须修改现有代码以使用某种getInstance()
方法,但一旦进行了更改,B类的所有实例都将使用A类的单个实例。
答案 3 :(得分:0)
只需使用静态类并确保它是公开的。