Java反射机制实践
来源:互联网 发布:淘宝链接怎么复制 编辑:程序博客网 时间:2024/05/22 17:49
Java反射机制的使用:
package zyw.testevent;import java.lang.reflect.Method;import java.util.ArrayList;public class CustomEventBus {protected static CustomEventBus customEventBus;private ArrayList<Object> contextlist = new ArrayList<>();public static CustomEventBus getDefault(){if(null == customEventBus){customEventBus = new CustomEventBus();}return customEventBus;}//发布事件public void post(Object object){for(int i = 0; i < contextlist.size(); i++){try {Object context = contextlist.get(i);Class<?> classss = context.getClass();Method method=classss.getMethod("onEventMainThread", object.getClass());method.setAccessible(true);method.invoke(context, object);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}//发送到指定类名的方法中public void post(String activityName, Object object){for(int i = 0; i < contextlist.size(); i++){try {Class<?> classss = contextlist.get(i).getClass();if(activityName != null && activityName.equals(classss.getName())){Method method=classss.getMethod("onEventMainThread", Object.class);method.setAccessible(true);method.invoke(classss, object);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public void register(Object cObject){contextlist.add(cObject);}public void unregister(Object cObject){contextlist.remove(cObject);}}
package zyw.testevent;public class CeshiClass {public CeshiClass(){CustomEventBus.getDefault().register(CeshiClass.this);}public void onEventMainThread(String name){System.out.println(name);}}
package zyw.testevent;public class TestEvent {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubCeshiClass c = new CeshiClass();String str = new String();str = "测试是否成功实现反射机制!";CustomEventBus.getDefault().post(str);//CustomEventBus.getDefault().unregister(c);CustomEventBus.getDefault().post(str);//取消注册CustomEventBus.getDefault().unregister(c);CustomEventBus.getDefault().post(str);}}
最后的输出结果:
测试是否成功实现反射机制!
测试是否成功实现反射机制!
0 0
- Java反射机制实践
- Java 反射机制实践
- Java反射机制应用实践
- Java 反射机制应用实践
- Java反射机制应用实践
- Java反射机制应用实践
- Java反射机制应用实践
- Java反射机制应用实践
- 【反射】Java反射机制应用实践
- (转)Java反射机制应用实践
- 【反射】JAVA反射机制
- java反射机制(2)- 实践:反射机制+动态代理实现模拟RMI远程方法调用
- Java反射实践
- Java 反射 实践
- Java反射实践
- Java 反射最佳实践
- Java反射实践
- Java反射实践
- IOS开发UI-------button
- eclipse 启动不了
- Java学习笔记(65)---------线程协作
- 添加全局引用文件pch
- UITableView刷新数据reLoadData
- Java反射机制实践
- ListView局部刷新
- 《iOS Human Interface Guidelines》——HealthKit
- TabLayout的使用
- 移动产品的首次邂逅
- Cookbook/Perl / List
- 通过sqlserver日志恢复误删除的数据
- Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的解决办法
- Android设备修改host文件以及修改设备网关