java 获取任意类下面的所有方法,任意类下面所有的get方法和get方法的值,动态调用方法
2015-05-27 13:11
489 查看
1准备一个 参数是对象的方法
public static void getClassAssert(Object obj, Object ect) { //第一步 Method[] sta = obj.getClass().getMethods(); Method[] sto = ect.getClass().getMethods(); if (sta.length == sto.length) { int length = sta.length; for (int i = 0; i < length; i++) { //第二步 获取类所有方法名字 String left = sta[i].getName(); String right = sto[i].getName(); Object je = null; Object ct = null; //第三步 获取前三个字母是get 的方法 if (left.substring(0, 3).equals("get")) { try { if (left.equals("getClass")) { continue; } //第四动态调用 方法 返回object je = obj.getClass().getMethod(left, new Class[] {}) .invoke(obj, new Object[] {}); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } if (right.substring(0, 3).equals("get")) { try { if (right.equals("getClass")) { continue; } ct = obj.getClass().getMethod(right, new Class[] {}) .invoke(obj, new Object[] {}); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } getTest.getAssert(je, ct); } } else { getTest.getAssert(true, false); } }
相关文章推荐
- oracle调用java方法的例子(下面所有代码都是在sql/plus中写)
- oracle调用java方法的例子(下面所有代码都是在sql/plus
- oracle调用java方法的例子(下面所有代码都是在sql/plus中写)
- java中通过反射获取方法并且调用(getMethod和invoke深入)实践
- java中通过反射获取方法并且调用(getMethod和invoke深入)实践
- Java反射获取一个类的所有get方法
- java中通过反射获取方法并且调用(getMethod和invoke深入)实践
- oracle调用java方法的例子(下面所有代码都是在sql/plus中写)
- java 反射机制 之 getMethods获取所有公有方法 和 getDeclaredMethods 获取本类所有方法
- java 反射机制 之 getMethod获取公有方法 getDeclaredMethod获取所有方法 然后invoke执行其所有方法
- java 获取调用类的 类名 方法名等信息
- java程序动态加载java源文件并调用类方法
- 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】
- java方法调用之动态调用多态(重写override)的实现原理——方法表
- java反射——获取及调用方法
- Java300StudyNote(3)-Java动态编译(DynamicCompile)、动态运行、反射调用mian方法、JavaCompiler.run()空指针问题
- java后台如何获取session的所有内容(获取到key和value的方法)
- Java绝对/相对路径获取与getResourceAsStream()方法
- java 获取调用类的类名和方法名
- JavaSE8基础 Class getDeclaredMethods 获取类的所有方法(不包括父类的)