Java 是否可以从另一个类访问非静态类的实例
假设我有A班和B班 我知道我不能从classB调用classA的非静态变量或方法,因为系统不知道我要使用哪个classA实例。但是有没有办法指定哪个实例呢 类似于这样:在类A中,我声明了一个静态变量,它可以保存类的特定实例的某种ID或上下文Java 是否可以从另一个类访问非静态类的实例,java,android,Java,Android,假设我有A班和B班 我知道我不能从classB调用classA的非静态变量或方法,因为系统不知道我要使用哪个classA实例。但是有没有办法指定哪个实例呢 类似于这样:在类A中,我声明了一个静态变量,它可以保存类的特定实例的某种ID或上下文 class classA{ static Instance instance onCreate(){ instance = thisInstance(); } Method1(){ } } 然后在B类中,我会这样引用该实
class classA{
static Instance instance
onCreate(){
instance = thisInstance();
}
Method1(){
}
}
然后在B类中,我会这样引用该实例:
ClassA.instance.method1();
这样的事情可能吗?如果是,确切的语法是什么
[奖金]:如果不是,从另一个类调用类中的方法的最简单方法是什么?我认为需要某种类型的事件处理。(我来自嵌入式c世界)在ClassA中声明一个静态成员
public class ClassA {
public static ClassA object = new ClassA();
public void doStuff() {
// do stuff
}
}
然后在B班
public void someMethod() {
ClassA.object.doStuff();
}
在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;
}
}
获取对另一个对象的引用并对其调用方法?您可能想退一步,复习一些Java基础知识。您可能只想使用
单例模式不,这不是我想做的,我想在classA中调用一个在classA中定义的方法,而不是像toString这样的内置方法。这也行不通,我希望引用通过启动应用程序创建的classA,而不是classA的任意副本。在我的例子中,ClassA是我的主要活动。ClassA.object是一个静态变量。静态变量只在执行开始时初始化一次。它是由类的所有实例共享的单个副本。您可以在ClassA中创建一个私有构造函数,以确保ClassA.object是应用程序中ClassA的唯一实例。