//Java8中,局部内部类访问的局部变量不必用final修饰,这一点和Java7是不一样的。
/**
* @param type 微博/微信 weixin weibo
* @param info
* @param contentMaps
* @return
*/
private StringBuffer publish(final String type, List<Authorization_info> infos, final List<Map<String, String>> contentMaps, final StringBuffer nameBuffer){
List<Future<StringBuffer>> futures = new ArrayList<Future<StringBuffer>>();
for (final Authorization_info info : infos) {
Future<StringBuffer> future = pool.submit(new Callable<StringBuffer>() {
@Override
public StringBuffer call() {
if (type.equals("weixin")) {
publishByWeixin(info, contentMaps, nameBuffer) ;
}
if (type.equals("weibo")) {
publishByWeibo(info, contentMaps, nameBuffer);
}
return nameBuffer;
}
});
futures.add(future);
}
StringBuffer result = new StringBuffer();
try {
for(Future<StringBuffer> future : futures) {
result = future.get().length() > result.length() ? future.get() : result;
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return result;
}