?# 第四章第一節--反射調用方法
標簽(空格分隔): 廖雪峰
---
## method
通過Class實例獲取method信息:
- getMethod(name,Class...):獲取某個public的method(包括父類,必須是public),參數為可變參數,內部表達為數組形式,連續寫更簡單.
- getDeclaredMethod(name,Class):獲取當前類中的某個method(不包括父類,不限行public)
- getMethods():獲取所有public的methed(包括父類)
- getDeclaredMethod():獲取當前類的所有method(不包含父類)
Method對象包含一個method的所有信息:
- getName():返回方法名.
- getReturnType():返回方法的返回類型.
- getParameterType():返回方法的參數類型.
- getModifiers():返回方法的修飾符.

得到method之后通過 invoke調用無參數的method.形式為:Object invoke(Object obj).

調用含有參數的invoke() 形式為:Object invoke(Object obj,Object...args).

訪問private的方法時,可以使用setAccessible(true)對于java核心類也可能因為SecurityManager而失敗.
方法調用也保證了java的多態屬性.

## 小節小結
- Method對象封裝了方法的所有信息.
- 通過Class實例的方法可以獲得Method實例.getMethod/getMethods/getDeclaredMethod()/getDeclaredMethods()
- 通過Method實例可以獲取方法信息:getName()/getReturnType()/getParameterTypes/getModifiers
- 通過Method實例可以調用某個對象方法:Object invoke(Object instance,Object...parameters)
- 可以通過設置setAccessible(true)來訪問非public的方法,對于java核心方法可能會失效.
- 前言
- 一:Java快速入門
- 二:Java面向對象編程
- 三:Java異常處理
- 錯誤處理
- Java的異常
- 捕獲異常
- 拋出異常
- 自定義異常
- 斷言和日志
- 使用斷言
- 使用JDK Logging
- 使用Commons Logging
- 使用Log4j
- 四:Java反射與泛型
- 反射
- Class類
- 訪問字段
- 調用方法
- 調用構造方法
- 獲取繼承關系
- 注解
- 使用注解
- 定義注解
- 處理注解
- 泛型
- 什么是泛型
- 使用泛型
- 編寫泛型
- 擦拭法
- extends通配符
- super通配符
- 泛型和反射
- 五:Java集合
- Java集合簡介
- Java集合簡介
- List
- 使用List
- 編寫equals方法
- Map
- Set
- Queue
- Stack
- 最佳實踐
- 六:Java IO編程
- 七:Java處理日期和時間
- 八:JUnit單元測試
- 九:Java正則表達式
- 十:Java加密與安全
- 十一:Java多線程編程
- 十二:Maven基礎
- 十三:Java網絡編程
- 十四:Java操作XML和JSON
- 十五:Java JDBC編程
- 十六:Java函數式編程