Java棘手的继承和调用类和方法

标签 java class abstraction

我的java有点生疏,我必须为这个问题实现一个解决方案。

在 A.java 中给出,其中:

public class A implements Cloneable{
  protected DataStorage Y = new DataStorage();

  public A(DataStorage X, about 20 other inputs of different Object types){
   this.Y=X;
  }

  public static DataStorage getData(){
   return this.Y;
  }
}

我的目标是在另一个文件 ServletA.java 中,我想在其中检索对象 Y 或 X。通过从 A.java 类进行静态调用...它有效还是有更好的方法?

public class ServletA{
  DataStorage Z = A.getData();
}

注意:是的,这无法编译,但是有解决方案吗?

我对解决方案的限制:

  • 对 A.java 进行最小程度的更改,因为它是遗留代码库
  • A() 构造函数有 20 多个输入,这是一场噩梦
  • 我的架构师也不想通过将 A 更改为抽象类来触及它
  • 无法在 ServletA.java 中创建 A 的实例

EDIT1:我的问题是是否有一种解决方案可以从 ServletA.java 访问 X,而不需要在 ServletA.java 中创建 A 的实例。上面的代码是一个示例,表明我已经想到了一种方法,但它不起作用。

编辑2:如果您想投反对票,请礼貌地向我询问澄清。谢谢!

最佳答案

如果您只有一个 A 实例,您应该使用 singleton图案。 您的 ServletA 代码应该类似于

public class ServletA {
  DataStorage Z = A.getInstance().getData();
}

关于Java棘手的继承和调用类和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11615781/

相关文章:

java - JNA:如何在结构中指定可变长度(0+)数组?

java - java中使用多线程下载

c++ - 如何将一个自创建的类包含在另一个自创建的类的头文件中?

c++ - 使用函数地址的模板类的唯一数字 ID

java - 设计问题: RMI needs explicit exporting of objects

c# - 如何编写具有相同方法和继承的 2 个类?

java - sleep 暂停整个线程

java - gwt Cookie 未设置或获取

java - 让类(class)相互交换信息的最佳方式?

c++ - 您将如何完全遵循 C/C++ 中的 Stepdown 规则?