是否可以从另一个类访问非静态类的实例

时间:2013-09-21 02:10:47

标签: java android

假设我有classA和classB。

我知道我不能只从classB调用非静态变量或classA方法,因为系统不知道我想使用哪个classA实例。但有没有办法指定哪个实例?

类似的东西:在类A中,我声明了一个静态变量,它可以将某种ID或上下文保存到类的特定实例

class classA{
  static Instance instance 

  onCreate(){
    instance = thisInstance();
  }

  Method1(){
   }
}

然后在B组我会像这样引用那个实例:

  ClassA.instance.method1();

是这样的吗?如果是这样,那么确切的语法是什么?

[Bonus]:如果不是,从另一个类调用类中的方法最简单的方法是什么?我假设需要某种事件处理。 (我来自嵌入式c世界)

2 个答案:

答案 0 :(得分:1)

在ClassA中声明一个静态成员

public class ClassA {
    public static ClassA object = new ClassA();

    public void doStuff() {
        // do stuff
    }
}

然后在ClassB

public void someMethod() {
     ClassA.object.doStuff();
}

答案 1 :(得分:0)

在B组中,您可以定义:

Class B {
  private static ClassA instanceA = null; // By making it null, you can later confirm that the instance was successfully passed by making sure instanceA != null.

  /**
  * This method allows you to pass the instance of ClassA into B so you can use its non-static methods.
  */
  public static void setInstanceA(ClassA instance) {
    instanceA = instance;
  }
}