gpt4 book ai didi

java - 如何处理java中方法签名的变化

转载 作者:行者123 更新时间:2023-11-30 01:56:43 24 4
gpt4 key购买 nike

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

最佳答案

如果签名是一种方式并且正在使用,那么更改它将会破坏它使用的位置,除非更改与其使用方式兼容(更改int例如,由于自动装箱,Integer 通常是兼容的)。

通常的做法是添加带有新签名的重载,保留原始方法(尽管您可能会更改其实现)。例如,如果原始内容是:

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

添加一个重载/一些重载:

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

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

关于java - 如何处理java中方法签名的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54212179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com