Spring Framework Java


public GetChannelAccountRes getAccounts(GetChannelAccountReq request) {
LawAccountEntity account = new LawAccountEntity();
if(request.getTransactionCode().equals("yyyyyyy") && "1".equals(account.getAccountOwnerType())) {
UserParameter userParameter = userParameterRepository.findByGroupKeyAndKey("xxxxxxx","11111111");


}  
return remoteChannelAccountInquiryService.getAccounts(request);
}

嗨,我有这个代码块。我如何在请求中添加这个userParameter值。我想在if语句中同时返回userParametervalue和remoteChannelAccountInquiryService.getAccounts(request)value

Java作为一种语言,不允许多个返回类型,即从同一个方法返回两个值。如果你想/必须从同一个方法返回多个东西,你需要改变你的返回类型。最简单的方法是返回一个Map,即

public Map<GetChannelAccountRes,UserParameter>getAccounts(GetChannelAccountReq request) {
Map<GetChannelAccountRes,UserParameter> map = new HashMap<>();
if (your condition) {
map.put(account, userParameter);
} else {
map.put(account, null);  // or some other default value for userParameter
}
return map;
}

,但调用者要么必须迭代映射键/值,要么知道键(即帐户)

老实说,使用Java更好的解决方案是在它自己的方法中执行if语句逻辑,该方法返回UserParameter,然后将UserParameter作为可选参数添加到现有方法中,这样您总是只返回一个对象。

public UserParameter getUserParameter(GetChannelAccountReq request) {
UserParameter userParameter = null;  // or some other default value
if(request.getTransactionCode().equals("yyyyyyy") && 
userParameter = "1".equals(account.getAccountOwnerType())) {
userParameterRepository.findByGroupKeyAndKey("xxxxxxx","11111111");
}  
return userParameter;
}
public GetChannelAccountRes getAccounts(GetChannelAccountReq request, UserParameter... userParameter) {
if (userParameter[0] != null) {
// whatever logic that requires both request and userParameter goes here
}
return getChannelAccountRes
}

如果同一个调用者同时调用getUserParameter和getAccount,那么它将拥有两个对象,我认为这就是你说你想要两个对象一起返回时的意图。getAccounts中的varargs(…)参数是一个风格问题,并且是一个数组,这就是为什么我们检查第一个索引是否为null。你也可以不像这样使用var参数来做同样的事情。

public GetChannelAccountRes getAccounts(GetChannelAccountReq request) {
return getAccounts(request, null); // or some default value for UserParameter intstead of null
}
public GetChannelAccountRes getAccounts(GetChannelAccountReq request, UserParameter... userParameter) { 
if (userParameter != null) {
// whatever logic that requires both request and userParameter goes here
}
return getChannelAccountRes

相关内容

  • 没有找到相关文章

最新更新