課程
/后端開發(fā)
/Java
/反射——Java高級(jí)開發(fā)必須懂的
有圖有真相
2017-09-06
源自:反射——Java高級(jí)開發(fā)必須懂的 6-1
正在回答
治好了我多年的頸椎病==
有源碼自己看著練習(xí)呀
有一部分老師沒有講,不過源碼中找到了,也就是先獲取它的get方法,因?yàn)間et方法,都是get然后屬性的大寫字母+小寫,然后通過這個(gè)get方法去找到這個(gè)方法的對(duì)象,用它去反射直接使用這個(gè)方法來獲取屬性的值,所以感覺同理,如果獲取的是set方法也能進(jìn)行賦值吧
老師的代碼在這里,稍微一看都知道了吧,在源碼中下載看到的
```
package com.imooc.reflect;
import java.lang.reflect.Method;
public class BeanUtil {
/**
* 根據(jù)標(biāo)準(zhǔn)javaBean對(duì)象的屬性名獲取其屬性值
*?
* @param obj
* @param propertyName
* @return
*/
public static Object getValueByPropertyName(Object obj, String propertyName) {
// 1.根據(jù)屬性名稱就可以獲取其get方法
String getMethodName = "get"
+ propertyName.substring(0, 1).toUpperCase()
+ propertyName.substring(1);
//2.獲取方法對(duì)象
Class c = obj.getClass();
try {
//get方法都是public的且無參數(shù)
Method m= c.getMethod(getMethodName);
//3 通過方法的反射操作方法
Object value = m.invoke(obj);
return value;
} catch (Exception e) {
e.printStackTrace();
return null;
}
你這樣,真的,脖子遲早歪,不看了
比方說通過方法的反射可以獲取到private的方法,就可以修改一些默認(rèn)的設(shè)置
舉報(bào)
反射,Java高級(jí)開發(fā)必須要懂的知識(shí)點(diǎn),學(xué)好Java高級(jí)課程的基礎(chǔ)
2 回答反射——Java高級(jí)開發(fā)必須懂的 這個(gè)視頻是不是少了一集視頻
3 回答反射到底有什么意義呢?只是為了避免泛型的編譯時(shí)的錯(cuò)誤嗎?感覺沒什么作用啊 我太菜了 感覺不到作用啊 求大神說說
3 回答為什么視頻不完整??
5 回答為什么用反射啊
1 回答感覺課程是否有部分的缺失,為什么要用反射調(diào)用方法
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2019-12-02
治好了我多年的頸椎病==
2018-10-27
有源碼自己看著練習(xí)呀
2018-01-04
有一部分老師沒有講,不過源碼中找到了,也就是先獲取它的get方法,因?yàn)間et方法,都是get然后屬性的大寫字母+小寫,然后通過這個(gè)get方法去找到這個(gè)方法的對(duì)象,用它去反射直接使用這個(gè)方法來獲取屬性的值,所以感覺同理,如果獲取的是set方法也能進(jìn)行賦值吧
老師的代碼在這里,稍微一看都知道了吧,在源碼中下載看到的
```
package com.imooc.reflect;
import java.lang.reflect.Method;
public class BeanUtil {
/**
* 根據(jù)標(biāo)準(zhǔn)javaBean對(duì)象的屬性名獲取其屬性值
*?
* @param obj
* @param propertyName
* @return
*/
public static Object getValueByPropertyName(Object obj, String propertyName) {
// 1.根據(jù)屬性名稱就可以獲取其get方法
String getMethodName = "get"
+ propertyName.substring(0, 1).toUpperCase()
+ propertyName.substring(1);
//2.獲取方法對(duì)象
Class c = obj.getClass();
try {
//get方法都是public的且無參數(shù)
Method m= c.getMethod(getMethodName);
//3 通過方法的反射操作方法
Object value = m.invoke(obj);
return value;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
```
2017-10-13
你這樣,真的,脖子遲早歪,不看了
2017-09-11
比方說通過方法的反射可以獲取到private的方法,就可以修改一些默認(rèn)的設(shè)置