感觉少了点什么,老师是不是少上传了javabean举例视频,和解释为什么要用反射操作的视频啊
有图有真相
有图有真相
2017-09-06
有一部分老师没有讲,不过源码中找到了,也就是先获取它的get方法,因为get方法,都是get然后属性的大写字母+小写,然后通过这个get方法去找到这个方法的对象,用它去反射直接使用这个方法来获取属性的值,所以感觉同理,如果获取的是set方法也能进行赋值吧
老师的代码在这里,稍微一看都知道了吧,在源码中下载看到的
```
package com.imooc.reflect;
import java.lang.reflect.Method;
public class BeanUtil {
/**
* 根据标准javaBean对象的属性名获取其属性值
*
* @param obj
* @param propertyName
* @return
*/
public static Object getValueByPropertyName(Object obj, String propertyName) {
// 1.根据属性名称就可以获取其get方法
String getMethodName = "get"
+ propertyName.substring(0, 1).toUpperCase()
+ propertyName.substring(1);
//2.获取方法对象
Class c = obj.getClass();
try {
//get方法都是public的且无参数
Method m= c.getMethod(getMethodName);
//3 通过方法的反射操作方法
Object value = m.invoke(obj);
return value;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
```
举报