2013-10-08 46 views
-1

我有一个Java类ClassA的这三个字段和方法的Java相同的方法签名不同的实现

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,因为这个类被其他类使用,并且可能需要更早的方法。

我知道这是不是有相同的方法签名可行的,但任何人都可以提供一个洞察,如何这可以在effecient的方式来解决。

+0

您不能在同一个类中拥有相同的方法签名。 –

+0

对于我来说,'业务需求'对于需要特定方法的实现来说似乎不太可能。也许你可以澄清你到底想要做什么? – artbristol

回答

4

你可以有扩展当前类的自定义子类,然后重写setField1方法:

public class SubClass extends CurrentClass { 

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

} 

使用子类的新的要求,并让使用CurrentClass像以前老班。

相关问题