如何在Java中处理更改方法签名

时间:2019-01-16 07:25:41

标签: java method-signature

我正在编写一个库,该库的方法M()带有3个参数,方法签名类似于M(参数1,参数2,参数3),在开发周期中可能会发生变化。因为每当我更改该库时,该库将使用三个应用程序A,B和C 方法签名(大多数情况下参数数量会发生变化),应用程序A,B和C的现有代码不应中断。这是处理这种情况的最佳方法。

1 个答案:

答案 0 :(得分:2)

如果签名是一种使用方式,然后使用 进行更改,除非更改与其使用方式兼容(将int更改为{{ 1}},例如,由于具有自动装箱功能,因此通常是兼容的。

通常的做法是使用新签名添加重载,将原始方法保留在原位置(尽管您可能会更改其实现)。例如,如果原始文件是:

Integer

添加重载/一些重载:

void m(Something a, SomethingElse b, YetAnotherThing c) {
    // ...
}

不会使用该原始方法破坏客户(假设实现继续执行以前的操作,即使执行方式有所不同)。