文章预览
阿里妹导读 本文作者记录了一次代码中的踩坑经历,一行很简单的代码在不同的场景下可能也暗藏玄机,希望大家看完都有所收获。 首先请大家花点时间阅读以下的代码块,看看代码是否存在问题或者隐患。 PostTask.java public interface PostTask { void process () ; } BaseResult.java public interface BaseResult extends Serializable { List postTaskList = Lists.newArrayList(); default void addPostTask (PostTask postTask) { postTaskList.add(postTask); } default List getPostTaskList() { return postTaskList; } } SimpleResult.java public class SimpleResult implements BaseResult { } // 请求处理的一部分逻辑 SimpleResult result = new SimpleResult(); ... // 处理过程中,会往后置任务列表加入任务 result.addPostTask(() -> { ...发消息... }); ... // 在返回结果之前,会对所有的后置任务进行遍历执
………………………………