Java同一方法签名不同实现

Java同一方法签名不同实现,java,Java,我有一个java类ClassA,它的字段和方法如下 boolean-isAvail; 字符串字段1; 公共字符串集合字段1(字符串字段1){ 此字段1=字段1; } 公共布尔值isAvail(){ 返回isAvail; } 但是,根据业务需求,我需要按照 publicsstringsetfield1(stringbcode){ 如果(isAvail){ field1=bcode; } 否则{ field1=“XYZ”; } } 我想保留早期的setField1,因为这个类被其他类使用,并且可

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

boolean-isAvail;
字符串字段1;
公共字符串集合字段1(字符串字段1){
此字段1=字段1;
}
公共布尔值isAvail(){
返回isAvail;
}
但是,根据业务需求,我需要按照

publicsstringsetfield1(stringbcode){
如果(isAvail){
field1=bcode;
}
否则{
field1=“XYZ”;
}
}
我想保留早期的setField1,因为这个类被其他类使用,并且可能需要早期的方法


我知道使用相同的方法签名是不可行的,但是任何人都可以提供一种见解,说明如何有效地解决这个问题。

您可以使用一个自定义子类来扩展当前类,然后重写setField1方法:

public类子类扩展了CurrentClass{
@凌驾
公共字符串setField1(字符串bCode){
if(isAvail()){
返回super.setField1(bCode);
}否则{
返回super.setField1(“XYZ”);
}
}
}

为您的新需求使用子类,并让旧类像以前一样使用CurrentClass。

在同一个类中不能有相同的方法签名。在我看来,“业务需求”不太可能像要求特定方法实现那样具体。也许你可以明确你想做什么?