我有一个简单的问题,现在我有一个方法返回一个填充的DTO对象,在另一个类我调用该方法,然后尝试访问返回的Object上的一些值。我无法弄清楚应该用什么语法来实现这一目标。它正在返回“结果”。我目前收到错误:
“空指针访问:变量结果在此位置只能为空”
我要返回的DTO包含一个List,我希望能够访问该列表中的一个值。以下是我的代码段。谢谢你的帮助!
for (Integer i = 0; i < array.size(); i++) {
// System.out.println(array.get(i));
GetAccountRewardSummaryRequest request = new GetAccountRewardSummaryRequest();
AccountRewardSummaryDTO result = null;
request.accountKey = new AccountIdDTO(array.get(i));
RewardServicesImpl rewardServicesImpl = new RewardServicesImpl();
rewardServicesImpl.getAccountRewardSummary(request);
// This will return an AccountRewardSummaryDTO, print out and see if it is returning properly
System.out.println(result.rewards.get(6));
// System.out.println(request.accountKey);
}
答案 0 :(得分:2)
从你的问题不清楚,但我怀疑这个:
rewardServicesImpl.getAccountRewardSummary(request);
应该是:
result = rewardServicesImpl.getAccountRewardSummary(request);
如果你想使用方法返回的值,你需要用它来做。
如果您在需要之前未声明result
变量,那么您的代码会更清晰 - 而且使用Integer
而不是int
没有意义。此外,除非您真的无法重复使用该服务,否则您也可以创建一次:
RewardServices service = new RewardServicesImpl();
for (int i = 0; i < array.size(); i++) {
GetAccountRewardSummaryRequest request = new GetAccountRewardSummaryRequest();
request.accountKey = new AccountIdDTO(array.get(i));
AccountRewardSummaryDTO result = service.getAccountRewardSummary(request);
System.out.println(result.rewards.get(6));
}
另外,如上所述,您的变量array
显然不是数组变量的事实令人困惑。