假设我有classA和classB。
我知道我不能只从classB调用非静态变量或classA方法,因为系统不知道我想使用哪个classA实例。但有没有办法指定哪个实例?
类似的东西:在类A中,我声明了一个静态变量,它可以将某种ID或上下文保存到类的特定实例
class classA{
static Instance instance
onCreate(){
instance = thisInstance();
}
Method1(){
}
}
然后在B组我会像这样引用那个实例:
ClassA.instance.method1();
是这样的吗?如果是这样,那么确切的语法是什么?
[Bonus]:如果不是,从另一个类调用类中的方法最简单的方法是什么?我假设需要某种事件处理。 (我来自嵌入式c世界)
答案 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;
}
}