0

假设我有classA和classB。

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

像这样:在类 AI 中声明一个静态变量,该变量将某种 ID 或上下文保存到类的特定实例

class classA{
  static Instance instance 

  onCreate(){
    instance = thisInstance();
  }

  Method1(){
   }
}

然后在类 BI 中会像这样引用该实例:

  ClassA.instance.method1();

这样的事情可能吗?如果是这样,确切的语法是什么?

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

4

2 回答 2

1

在 ClassA 中声明一个静态成员

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

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

然后在B类

public void someMethod() {
     ClassA.object.doStuff();
}
于 2013-09-21T02:14:51.917 回答
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;
  }
}
于 2013-09-21T03:15:17.233 回答