是否可以使用java方法返回“如果条件满足,则返回列表,否则返回错误消息”
我知道在Java中,一个方法只能返回一种返回类型。。。但如果有任何可能性,请告诉我。从下面的方法中,如果条件满足,我将尝试返回一个列表,否则我将尝试返回一条错误消息
这是我的代码:
@RequestMapping(value = "/getcompanies", method = RequestMethod.POST)
public List<CompanyMaster> getCompanies(@RequestBody UserDetails user) {
String OrgLoginId = user.getOrgLoginId();
String password = user.getuPassword();
String checkLoginId = null;
String uPassword = null;
String encPassword = null;
String loginId = null;
String checkAuthorized = null;
// String loginId=userService.getLoginId(OrgLoginId);
List<Object[]> CheckIdPassword = userService.checkLoginId(OrgLoginId);
List<Object[]> results = CheckIdPassword;
for (Object[] obj : results) {
checkLoginId = obj[0].toString();
if (null == obj[1]) {
uPassword = "";
} else {
uPassword = obj[1].toString();
}
loginId = obj[2].toString();
}
checkAuthorized = loginId.substring(0, 3);
if (null != password) {
MD5 md5 = new MD5();
encPassword = md5.getPassword(password);
}
if (checkLoginId == null) {
return "Incorrect loginId..Please enter valid loginId";
} else if (encPassword.equals(uPassword)) {
if (checkAuthorized.equals("STE")) {
List<CompanyMaster> companyList = userService.getCompanyList(OrgLoginId);
return companyList;
} else {
return "You are not Authorized";
}
} else {
return "Incorrect Password";
}
# 1 楼答案
您可以通过创建一个新的presenter类来实现这一点,该类包含类型字符串的列表和状态,并将getCompanies方法的返回类型更改为presenter类,如
你公司的Presenter类应该是这样的
这就是你更新的方法lokks的风格
这没有经过测试,请确保有任何编译错误
# 2 楼答案
使用自定义异常是最合理的解决方案。然而,仅为一种情况创建自定义异常并不总是理想的。 另一种解决方案是从方法返回空列表,检查servlet中的列表是否为空(或从何处调用此方法),并在那里显示错误消息。 似乎您希望针对不同的情况返回多条错误消息。在这种情况下,建议使用自定义异常解决方案。如果不喜欢自定义异常,可以返回}还是
List<Object>
并将错误消息作为列表中的第一个元素填充。在获取该列表的地方,检查第一个元素是instanceOf
{CompanyMaster
。根据它是什么,你可以执行你的操作。这是一个奇怪但可能的解决方案(只有在您不喜欢自定义异常的情况下)