[TOC]
## java反射
- 需要使用Class類
```
使用Class類來表示所有類。Class類中定義了所有類的行為跟特征
```
* [ ] Class 對象使用反射的一個源頭
* [ ]
* [ ] 使用反射可以獲得類的所有的方法和屬性,包括私有的;
>### 獲得Class的三種方式:
- 第一種:
```
Class classTypes = 類名.class;
```
- 第二種:
```
首先創建一個類對象;
Class classTypes = 對象名.getClass();
```
- 第三種(推薦使用):
```
Class classTypes = Class.forName(全類名(String));
```
>### 方法
```
* getMethods():可以拿到當前類的所有方法(只包含公有的以及繼承的方法),返回類型是Method對象數組;
* getMethod(方法名稱,聲明參數列表):拿到指定方法,參數格式:參數類型.class;
* getDeclaredMethod(方法名稱,聲明參數列表):拿到指定方法,忽略訪問權限修飾符。參數格式:參數類型.class;
* setAccessible(true):設置訪問權限為true,才能訪問私有方法;
* invoke(類任意對象,傳入參數):調用方法(無參方法為null);
getFields():拿到所有的屬性(公有的的屬性),返回Field對象數組;
getFiled(屬性名稱):拿到指定公有屬性;
set(類任意對象,value): 對象屬性設置;
get(任意類對象):獲得該指定對象屬性;
getDeclaredField(屬性名稱):獲得所有屬性,忽略訪問權限修飾符;
* setAccessible(true):設置訪問權限為true,才能訪問私有屬性;
getConstructors():拿到當前類所有公有構造器;
getInterfaces():拿到當前類實現的接口;
getAnnotations():返回當前類的所有注解;
newInstance():實例化類對象
getName():拿到全路徑名稱
getSimpleName():只拿到名稱
```
- 注意
```
1. 使用getMethod()方法時應當注意方法的權限修飾符,如果是protected或者private應當使用getDeclaredMethod();
2. invoke(類任意對象,傳入參數)為Method類的執行方法,要調用則先通過getMethod()或getDeclaredMethod()獲得Method對象。
```
- 第一章 java SE
- 1.1數據類型
- 1.2 流程控制語句
- 1.3 方法
- 1.4 面向對象三特性
- 1.5 對象數組與集合
- 1.6 數組和集合操作工具類
- 1.7 可變參數
- 1.8 String
- 1.9 StringBuilder
- 1.10 final&&finally&&finalize
- 1.11 抽象類與接口
- 1.12 基本數據類型的包裝類
- 1.13 泛型
- 1.14 內部類
- 1.15 throw & throws & try catch
- 1.16 線程
- 1.17 BeanUtils
- 1.18 java反射
- 1.19 序列化和反序列化
- 1.20 IO輸入輸出流
- 1.21 File
- 1.22 RandomAccessFile
- 1.23 第三方工具CommonsIO
- 1.24 java網絡傳輸
- 第二章 java EE
- 2.1 maven的配置
- 2.2 Cookie
- 2.3 EL表達式 JSTL
- 2.4 驗證相關
- 2.4.1 驗證碼
- 2.5 防重復提交
- 2.6 activeMq的使用
- 2.7 jtl的使用
- 2.8 Upload上傳文件
- 第三章 Spring相關
- 3.1 IOC/DI
- bean的生命周期
- bean的配置
- 3.2 Spring Aop
- 3.3 Spring Jdbc
- 3.4 事物相關
- 事物
- 事物的使用
- 3.5 MBG使用
- 第四章 解決問題方法
- 4.1 List轉換為Map
- 4.2 結果返回類
- 4.3 HSSF的使用
- 第五章 排序
- 5.1 冒泡排序
- 5.2 選擇排序
- 5.3 快速排序