项目中遇到过好几次这个需求,然后每次都记不住都是百度了半天,然后想着赶紧趁机记录下来吧,既然记不住,还不如花点时间记录一下,给下次省点时间.set方法网上百度一下比较常见,然后get方法就没有几个,还有好多set跟get混一块,反正对于拿来主义的我来讲认真分析看下来好麻烦,所以就自己简单整理一下,好了.费话不多说,直接上代码,自己项目亲测有效.
set 方法:
try { Method method = typeData.getClass().getDeclaredMethod("methodName", new Class[]{String.class}); method.invoke(typeData, "value"); } catch (Exception e) { e.printStackTrace(); }
简单解释一下.
红色部分要替换成你自己的内容,
typeData : 你要操作的对象,你需要调用这个对象的某个set方法;
methodName : 方法名称,比如你要调用setName 的话这边就是方法名setName
String.class: 你这个方法的参数类型,比如这边是一个参数,类型为String ,多个参数后面继续加,认真看这是一个数组
value 这边是你要赋值的值,注意类型要对应即可
get方法
Class clazz = obj.getClass();//获取对象的类型 Object value = null; try { //获取 clazz 类型中的 propertyName 的属性描述器 Method method = clazz.getDeclaredMethod(propertyName); value = method.invoke(obj); } catch (Exception e) { e.printStackTrace(); }
同理红色代码自己可以替换,
obj : 比如你哪个对象要调用它的什么方法,这个就是那个对象;
value : 调用方法的返回值;注意类型转换,这边是Object 如果你实际是String 可以直接强转.
propertyName : 方法的名称,比如要调用getName 那么这个就是getName
以上: 完