java - 如何从所有者实例访问变量?

标签 java

实例 aA有一个实例 bB .

如何b访问变量a

class A {
    boolean flag;
    B b;

    public static void main(String[] args) {
        A a = new A();
    }

    public A() {
        b = new B();
        b.doSomething();
        chageFlag();
        b.doSomething();
    }

    void changeFlag() {
        // do something with flag
    }
    // other stuff
}

class B {
    void doSomething() {
        // here I need to access a from the instance owning b.
        boolean aFlag = ?? // how to access a.flag ??
    }
}

最佳答案

在此实例中,您将无法访问 A 的变量,因为 A 和 B 此处没有父/子或外部/内部类关系。

实现的方法是将A的实例传递给B,例如,

B b = new B(this);

为此,您需要调整构造函数以将 A 作为参数。

关于java - 如何从所有者实例访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59338687/

相关文章:

java - 如何对java main方法进行单元测试?

java - 创建一个无法创建其对象的类

java - 使用 JoddHttp put 请求通过 .body() 发送 JSON 会损坏中文文本

java - 预验证并将用户名转发给默认验证提供程序

java - 为什么我的 BufferedReader 读取给定文件中不存在的文本?

java - 如何将 ear 应用程序重写为 Spring

java - 从另一个 Activity 的共享首选项获取字符串集

java - 从 Java 运行外部命令时处理泄漏

java - 初始化具有许多可选数据成员的类的 Java 最佳实践是什么?

java - hibernate : How to get last n rows in spring boot JpaRepository?