我多次使用此功能,我将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);
}
答案 0 :(得分:0)
您仍然可以将元素添加到最终列表中。您无法将其与其他参考重新分配。