我有一个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,因为这个类被其他类使用,可能需要更早的方法。
我知道拥有相同的方法签名是不可行的,但任何人都可以提供有关如何以有效方式解决此问题的见解。
答案 0 :(得分: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。