我正在开发一个具有切换帐户功能的网络应用程序。当您单击切换帐户链接时,会出现一个带有下拉列表的框,其中列出了您可以切换到的所有帐户。
对于用户恰好有两个帐户的情况,我打算不显示带有下拉菜单的框,而只是切换到另一个帐户。
这确实很容易做到,但是获取“其他帐户”的代码并不是很优雅。我希望有人有一个想法来清理它。
public boolean hasExactlyTwoAccounts() {
return this.accountIdMap.size() == 2;
}
/**
* @return the account Id that is not currently selected
*/
public String getOtherAccountId() {
assert this.hasExactlyTwoAccounts();
for (String accountId : accountIdMap.keySet()) {
if (!this.selectedAccountId.equals(accountId)) {
return accountId;
}
}
// worst case scenario
return selectedAccountId;
}
我很少使用断言,但在这里看起来确实合适。这些方法是从 JSP 调用的,只有当 hasExactlyTwoAccounts() 方法为 true 时才会调用 getOtherAccountId() 方法。所以在这里使用 assert 只是为了将来证明另一个开发人员不正确地使用了这个方法。
有人想吗?首先,关于获取地图中另一个键的更优雅的方式,其次,关于我对断言和一般断言的使用。
编辑我对使用外部库持开放态度......这几乎就是我所说的优雅。