0

我有一个简单的问题,现在我有一个返回填充 DTO 对象的方法,在另一个类中我正在调用该方法,然后尝试访问返回的对象上的一些值。我无法弄清楚完成此操作的语法应该是什么。它正在返回“结果”。我目前收到一个错误:

“空指针访问:变量结果在该位置只能为空”

我返回的 DTO 包含一个列表,我想访问该列表中的一个值。下面是我的代码片段。谢谢您的帮助!


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);

        }
4

1 回答 1

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清楚地调用的变量不是数组变量这一事实令人困惑。

于 2013-09-30T18:48:00.200 回答