【发布时间】:2016-01-18 18:11:12
【问题描述】:
假设我创建了一个库并将其分发到整个公司并在每个项目中使用。
库是 1.0,假设我有一个接口 Componentble。
public interface Componentble {
public String getComponentId();
}
我做了一些修改并更新了 1.1 的 jar 和 Componentble 接口修改如下。
public interface Componentble {
public String getComponentId();
public Componentble getParentComponent();
}
当这个 jar 应用到现有项目时,它会给出编译错误。 我想做这个修改并更新 jar。但情况是它不应该影响现有项目。
最好的方法是什么。 创建 ComponentbleV2 并在新项目中要求使用 ComponentbleV2 而不是 Componentble。
或者创建自定义类加载器并做需要的事情。
我想要的答案是我们如何进行 api 修改并应用于现有项目,而不会对现有项目产生任何编译问题。
【问题讨论】:
-
创建新界面。弃用旧的,但允许人们继续使用它(为了向后兼容)。这可能需要在某些地方进行一些修改。在几个版本中,删除旧界面。
标签: java api class interface classloader