我知道各位会说换其他 Java 替代语言(Kotlin...),但是公司代码库暂时不支持。
现在我有一堆User
, 然后有个 Helper 会逐个检查这些 User,然后如果 User 的 Email 地址或者电话号码对应输入,就 return 那个 User。代码如下(手工重写的,省去了很多细节)
public User getUserFromEmail(String email) {
for (User user : getUsers()) {
if (email.equals(user.getEmail())) {
return user;
}
}
}
public User getUserFromPhoneNumber(String phoneNumber) {
for (User user : getUsers()) {
if (phoneNumber.equals(user.getPhoneNumber())) {
return user;
}
}
}
那这俩方程基本就差一点点,所以我想把他们合并起来。我现在的想法写出来感觉非常恶心。
public User getUserFromEmail(String email) {
User(email, null);
}
public User getUserFromPhoneNumber(String phoneNumber) {
getUser(null, phoneNumber);
}
private User getUser(String email, String phoneNumber) {
String query, userInfo;
if (email != null) {
query = email;
} else if (phoneNumber != null) {
query = phoneNumber;
} else {
return null;
}
for (user : getUsers()) {
if (email != null) {
userInfo = user.getEmail();
} else if (phoneNumber != null) {
userInfo = user.getPhoneNumber();
}
if (query.equals(userInfo)) {
return user;
}
}
}
蛋疼的地方有 2 个,一个是合并后结果比原来长很多,还有一个是这样每个循环都要做多一个 check,显得非常愚蠢,不知道各位 Java 大佬有没有什么办法可以帮到我,先谢谢了 ><
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.