use*_*935 4 java if-statement instanceof abstract superclass
我有这些代码行:
public String getAccountType(BankAccount a){
if(a instanceof RegularAccount)
return "RA";
else if(a instanceof SavingsAccount)
return "SA";
else if(a instanceof cityAccount)
return "CLA";
else if(a instanceof StateLawAccount)
return "SLA";
else if(a instanceof FederationLawAccount)
return "FLA";
else
return null;
}
Run Code Online (Sandbox Code Playgroud)
BankAccount
是下面所有类的超类(抽象).在这个方法中,我只想返回String中的"a"类.
但是,我想知道是否有更好的方法来验证除这一堆if/else
语句之外的"a"类.有吗?我能用switch语句吗?如果是这样,怎么样?
Wil*_*ler 12
把一个抽象方法getAccountType()
上BankAccount
,然后让实现返回帐户类型的字符串.这是一个假设BankAccount
是接口的示例:
public interface BankAccount {
String getAccountType();
... whatever else ...
}
Run Code Online (Sandbox Code Playgroud)
然后
public class RegularAccount implements BankAccount {
@Override
public String getAccountType() { return "RA"; }
... whatever else ...
}
Run Code Online (Sandbox Code Playgroud)
如果BankAccount
是一个类,那么只需将它作为一个抽象方法.