自定义EventHandler,引入invoke执行方法
来源:互联网 发布:免费阅读软件下载 编辑:程序博客网 时间:2024/06/05 13:11
public class EventHandler{ private List<Event> objects; public EventHandler()// 构造方法,定义event类型的ArrayList { objects = new ArrayList<Event>(); } // 添加事件 public void addEvent(Object object, String methodName) { objects.add(new Event(object, methodName)); } // 通知执行方法 public void notifyExcute(Object[] Prams) throws Exception { for (Event e : objects) { e.invoke(Prams); } }}
自定义Event,反射机制
import java.lang.reflect.Method;public class Event{ // 要执行的对象 private Object object; // 要执行的方法名称 private String methodName; // 要执行方法的参数的类型 private Class[] paramTypes; public Event() { } public Event(Object object, String methodName) { this.object = object; this.methodName = methodName; } // 根据参数数组生成参数的类型数组 private void createParamTypes(Object[] params) { this.paramTypes = new Class[params.length]; for (int i = 0; i < params.length; i++) { this.paramTypes[i] = params[i].getClass();//获取对象的类型 } } public Object getObject() { return object; } private Class[] getParamTypes() { // TODO Auto-generated method stub return paramTypes; } private String getMethodName() { return methodName; } // 若干setter getter省略 public void setParamTypes(Class[] paramTypes) { this.paramTypes = paramTypes; } // 执行该对象的该方法 public void invoke(Object[] Prams) throws Exception { createParamTypes(Prams); Method method = object.getClass().getMethod(this.getMethodName(), this.getParamTypes()); if (null == method) { return; } method.invoke(this.getObject(), Prams); }}运用:
EventHandler a = new EventHandler();
a.addEvnt(this,"meathodA");
a.notifyExcute(new Object[]{});//如果a中有多个方法,那么会执行所有方法
0 0
- 自定义EventHandler,引入invoke执行方法
- Control.Invoke 方法 (Delegate, Object[]) ,执行委托
- 自定义标签JspFragment类、invoke方法
- 自定义标签JspFragment类 invoke()方法
- EventHandler委托与自定义委托
- EventHandler
- java反射机制之Method invoke执行调用方法例子
- java反射机制之Method invoke执行调用方法例子
- java反射机制之Method invoke执行调用方法例子
- java反射机制之Method invoke执行调用方法例子
- invoke方法
- invoke方法
- Hbase 执行事件(EventHandler 、 ExcutorService 、Excutor)
- jQuery Validate 自定义验证方法引入问题
- wp7自定义及传递EventHandler参数
- Unity中利用Invoke执行延时方法和利用InvokeRepeating执行重复方法
- 自定义View执行invalidate()方法
- 说下java反射机制之Method invoke执行调用方法例子
- [Unity3D教程]Unity粒子系统Shuriken(飞镖)
- 如何实现android蓝牙开发 自动配对连接,并不弹出提示框
- QSetting:Qt读写配置文件实例
- 139.Subarray Sum Closest-最接近零的子数组和(中等题)
- varnish/squid/nginx cache比较
- 自定义EventHandler,引入invoke执行方法
- ES6学习12(Class)
- 区块链开发(三)编写调试第一个以太坊智能合约
- 关于RxJava详解
- Atomic单例(乐观锁)
- 《实用MATLAB图像和视频处理》第十章邻域处理-卷积和相关
- python中删除不需要的字符1、
- Java编码问题总结
- Unity小技巧——获取当前主机网卡的mac地址