将变量数据分配给另一个

时间:2018-01-22 16:09:38

标签: java

我多次使用此功能,我将stats传递给列表,然后使用return statisticsList.get(statisticsList.size() - 1); or could be index 0 because there is only one stat返回数据。

这完全是愚蠢的,因为我可以简单地做

Statistics statistics;

然后

statistics = stats;

并返回statistics而不是statisticsList.get(statisticsList.size() - 1);。但这不起作用,因为它说statistics预计是最终的。如果我把决赛我不能分配统计数据。

那么如何以最简单的方式返回stats以确保执行.awaitCompletion();

 public static Statistics getStatistics(String environmentName) {
    Container container = getContainer(environmentName);
    List<Statistics> statisticsList = new LinkedList<>();

    try {
        dockerClient().statsCmd(container.getId()).exec(new ResultCallbackTemplate<StatsCallback, Statistics>() {
            @Override
            public void onNext(Statistics stats) {
                System.out.println(stats);
                statisticsList.add(stats);
                if(statisticsList.size() > 0 ) {
                    onComplete();
                }
            }

            @Override
            public void onComplete() {
                super.onComplete();
            }
        }).awaitCompletion();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    return statisticsList.get(statisticsList.size() - 1);
}

1 个答案:

答案 0 :(得分:0)

您仍然可以将元素添加到最终列表中。您无法将其与其他参考重新分配。