有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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


共 (1) 个答案

  1. # 1 楼答案

    如果签名是单向的,并且正在使用中,那么更改破坏它的使用位置,除非更改与它的使用方式兼容(例如,将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) {
        // ...
    }
    

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