java - 处理必须在许多类中更改的导入

标签 java

在我的应用程序中,Java 类通过一些 jar 与 Cobol 进行通信。我使用引用 jar 内部类(其中指定版本)的导入来调用它们。例如:

import com.dsi.business.SSA_YU.integration.jdo.P_YUCCS00.C_YUCCS00;
import com.dsi.business.SSA_YU.integration.jdo.P_YUCCS00.INHEADER;
import com.dsi.business.SSA_YU.integration.jdo.P_YUCCS00.INPBST;

然后,在方法中使用它(我每次都必须更改版本的其他点):

public void doSomething(int param1, C_YUCCS00 msg) {
...
}

我的问题是:这些 jar 中的每一个都被导入到许多 Java 类中(例如 100-150 个)。如果“jar”的版本(实际上是内部类的名称)发生变化,我将必须导入新的 jar,因此,要像这样调整导入:

import com.dsi.business.SSA_YU.integration.jdo.P_YUCCS01.C_YUCCS01;
import com.dsi.business.SSA_YU.integration.jdo.P_YUCCS01.INHEADER;
import com.dsi.business.SSA_YU.integration.jdo.P_YUCCS01.INPBST;

这意味着要进行大量更改并对许多类进行版本控制。

你知道有什么办法可以解决这个问题吗?有一种方法可以将导入放入一个单独的 Java 类中,仅用于导入并调用该类吗? 预先感谢您

最佳答案

一种解决方案是使用包含版本化类并具有与基础版本化类相同的公共(public)方法的代理类。然后,在您的代码部分中使用每个代理类,而不是版本化类。不清楚的一部分是如何初始化代理类,因为从问题中不清楚版本化类和应用程序类之间的交互是如何发生的

import com.dsi.business.SSA_YU.integration.jdo.P_YUCCS00.C_YUCCS00;

public class C_YUCCProxy {
    private  C_YUCCS00 underlying;

    //First example of constructor if new objects are created
    public C_YUCCProxy() {
         this.underlying = new C_YUCCS00();
    }

    //Second example using existing object
    public C_YUCCProxy(C_YUCCS00 object) {
         this.underlying = object;
    }

    public void doLogic(int value) {
        underlying.doLogic(value);
    }

    public String getStringValue() {
        return underlying.getStringValue();
    }
    //... all other public methods
}

然后在应用程序代码的其他部分

public void doSomething(int param1, C_YUCCProxy msg) { 

     msg.doLogic(42);
     String response = msg.getStringValue();
}

关于java - 处理必须在许多类中更改的导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53865018/

相关文章:

java - 对象中属性的唯一性

java - Apache Flink 测试中是否有像 Reactor 和 RxJava 中那样的虚拟时间概念

java - android:从List<HashMap>中将数据存储在Sqlite中

java - Selenium 网络驱动程序 : how to verify that there is a heading titled “Download” on the page wrapped in <h2> tags?

java - 面向对象编程: Method Capabilities

java - Admob 横幅广告未显示在 Android 应用程序上

java - 在应用程序(软件)内构建逻辑的极端可能是什么,即 GMail 附件验证

javascript - 将 arraylist 中的数据发送到 JavaScript 中的数组

java - 将继承类分配给继承接口(interface)时出现不兼容类型错误

Java:选择性比较两个集合