我有那些代码行:
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;
}
BankAccount
是下面所有类的父类(super class)(抽象)。在此方法中,我只想返回字符串中的“a”类。
但是,我想知道除了这一堆 if/else
语句之外,是否有更好的方法来验证“a”类。有吗?我可以用 switch 语句来做吗?如果是,怎么办?
最佳答案
在 BankAccount
上放置一个抽象方法 getAccountType()
,然后让实现返回帐户类型字符串。下面是一个假设 BankAccount
是一个接口(interface)的例子:
public interface BankAccount {
String getAccountType();
... whatever else ...
}
然后
public class RegularAccount implements BankAccount {
@Override
public String getAccountType() { return "RA"; }
... whatever else ...
}
如果 BankAccount
是一个类,那么就把它变成一个抽象方法。
关于java - 比 Java 中的 If(x instanceof y) 更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33880577/