//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; }