-1

我有一个 java 类 ClassA,它的字段和方法为

boolean isAvail;
String field1;

public String setField1(String field1) {
    this.field1 = field1;
}

public boolean isAvail() {
    return isAvail;
}

但是根据业务需求,我需要将该方法实现为

public String setField1(String bCode) {
    if (isAvail) {
        field1 = bcode;
    }
    else {
        field1 = "XYZ";
    }
}

我想保留较早的 setField1 因为此类被其他类使用并且可能需要较早的方法。

我知道拥有相同的方法签名是不可行的,但任何人都可以提供有关如何以有效方式解决此问题的见解。

4

1 回答 1

4

您可以有一个扩展当前类的自定义子类,然后覆盖 setField1 方法:

public class SubClass extends CurrentClass {

    @Override
    public String setField1(String bCode) {
        if (isAvail()) {
            return super.setField1(bCode);
        } else {
            return super.setField1("XYZ");
        }
    }

}

使用 SubClass 满足您的新要求,并让旧类像以前一样使用 CurrentClass。

于 2013-10-08T13:54:06.373 回答