package com.yanzuoguang.util.helper; import java.util.ArrayList; import java.util.List; /** * Java事件处理类 * * @param <T> * @author 颜佐光 */ public class Event<T> { /** * 事件列表 */ private List<T> list = new ArrayList<>(); /** * 添加处理对象 * * @param t */ public void add(T t) { if (t != null) { list.add(t); } } /** * 触发事件 * * @param m * @param <M> * @throws Exception */ public <M extends EventRun<T>> void exeucte(M m) throws Exception { for (T item : list) { m.run(item); } } /** * 删除某个事件处理类 * * @param t 需要删除的事件处理类 * @return */ public boolean remove(T t) { if (t != null) { return list.remove(t); } return false; } /** * 清除所有事件 */ public void clear() { list.clear(); } /** * 判断是否包含事件 * * @param t 需要判断的事件 * @return 是否包含 */ public boolean contants(T t) { if (t != null) { return list.contains(t); } return false; } /** * 获取事件列表 * * @return 事件列表集合 */ public List<T> getList() { return list; } /** * 获取事件长度 * * @return 长度 */ public int size() { return list.size(); } }