Java-当类A调用类B时,在类B中如何使用类A的方法和属性?

标签 java

我遇到了一个问题,我有两个类 class Aclass B 它们看起来像:

class A{
 private String s;
 public a1(){
  // do something with s
  B b = new B();
  b.b1();
  // do others things
 }
 public a2(){
 // this needs s which has been initialised in method a1
 } 
}

class B{
 public b1(){
 // do something

 // here, how can I call method a2 and use String s in a2?
 A a = new A(); 
 a.a2();
 // ...
 }
}

当我们调用方法a2时,如何保留String s的值? 而且我不喜欢在 a2 中使用 b.b1(s) 和在 b1 中使用 a.a2(s)

感谢您的建议。

最佳答案

您应该将 A 的调用实例注入(inject)到 b1 中:

public b1(A a) {
  ...
}

以避免需要在该方法中创建新的A。然后,在 a1 中,您可以这样调用它:

b.b1(this);

这被称为 dependency injection :b1 的工作取决于 A 的实例,因此您可以注入(inject)该依赖项。

关于Java-当类A调用类B时,在类B中如何使用类A的方法和属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36682118/

相关文章:

java - 我正在使用 Apache POI 将 PPTX 幻灯片转换为图像,但生成的图像的大小非常巨大,超过 1.5 mb

java - 在Android中使用ArrayAdaptor时,数据不显示

java - JButton 释放 Action

Java读取带分隔符的大文本文件

java - 如何使用 Java 从可变 Json 文件创建 Sql 语句

java - 如何在 ListView 中为每个列表项添加三点菜单?

java - 在 Java 中使用两个二维数组

Java Client 和 C++ Server,有时会收到全部信息

java - 现有路径上的 NullPointerException

java - 为什么我的 Spring Controller 不处理 GraphiQL 发送的 OPTIONS 请求?