java invoke的简单实例
4019 点击·0 回帖
![]() | ![]() | |
![]() | package com.zte.test1; import java.lang.reflect.Method; public class main { public Object operadata(Object obj) throws Exception { Method[] mths = obj.getClass().getDeclaredMethods(); for (int i = 0; i < mths.length; i++) { String str = new String(mths.toString());// 获取方法名 System.out.println(str.toString()); if (str.indexOf(".set") > 0) { if (str.indexOf("String") > 0) { mths.invoke(obj, "chenshaohua"); } if (str.indexOf("int") > 0) { mths.invoke(obj, 12); } } } return obj; } public static void main(String[] args) { test t1 = new test(); main m = new main(); try { m.operadata(t1); System.out.println("name--->>>" + t1.getName() + " age--->>>" + t1.getAge()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class test { public String name; public int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 答应结果如下: public int com.zte.test1.test.getAge() public void com.zte.test1.test.setAge(int) public java.lang.String com.zte.test1.test.getName() public void com.zte.test1.test.setName(java.lang.String) name--->>>chenshaohua age--->>>12 摘自 csh159的专栏 | |
![]() | ![]() |