JAVA 之反射(基础概念) 几个主要常用的重要的方法
什么叫JAVA反射機制?
能夠動態獲取的信息以及動態調用對象的方法的功能稱為JAVA語言的反射機制。
通過反射機制,能做什么?
正常的編譯是將處于JVM中的字節碼(CLASS文件)進行處理
可以在程序中訪問已經裝載到JVM中的JAVA對象的描述,實現訪問,檢測和修改描述JAVA對象本身信息的功能。
(1)訪問構造方法:
? ? Constructor類的主要幾個方法:
? ? getModifiers() ?獲得可以解析出該構造方法所采用修飾符的整數。
? ? getParameterTypes() 按照聲明順序以Class數組的形式獲得該構造方法的各個參數的類型。
? ? getExceptionTypes() 以Class數組的形式獲得該構造方法可能拋出的異常類型。
? ? 注意 :?如果是訪問的構造方法,需要根據該構造方法的入口參數的類型來訪問。例如:訪問一個入口參數類型依次為String和int型的方法。
? ? objectClass.getDeclaredConstructor(String.class,int class);
? ? objectClass.getDeclaredConstructor(new Class[]{String.class,int class});
????
? ? 通過java.lang.reflect.Modifier類可以解析出getModifier()方法的返回值所表示的修飾符信息,在該類中提供了一系列用來解析的靜態方法,既可以查看是否被指定的修飾符修飾,還可以以字符串的形式獲得所有修飾符。該類常用的靜態方法如下:
? ? isPublic(int mod) ? ? ? ? ? 查看是否被public修飾,如果是則返回true,不是則返回false.
? ? toString(int mod) ? ?????????? ?以字符串的形式返回所有修飾符
(2)訪問成員變量:
在通過下列一組方法訪問成員變量時,將返回Field類型的對象與數組,每一個Field對象代表一個成員變量,利用Field對象可以操縱相應的成員變量。
如果是訪問指定的成員變量,可以通過該成員變量的名稱來訪問,例如,訪問一個名稱為:birthday的成員變量,訪問方法如下:
object.getDeclaredField("birthday");
(3)訪問方法
經常用到的獲取包名與類名:
(1)通過對象名:
對象名.getClass();
(2)通過類名:
類名.Class;
(3)通過反射來獲取
Class.forName();
newInstance() :通過該構造方法的利用指定參數創建一個該類的對象,如果未設置參數則表示采用默認無參的構造方法
setAccessible(boolean flag) : 如果該構造方法的權限為:private,默認為不允許通過反射利用newInstance(Object...initargs)
方法創建對象。如果先執行該方法,并將入口參數設為"true",則允許創建。
總結
以上是生活随笔為你收集整理的JAVA 之反射(基础概念) 几个主要常用的重要的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雷神911新电脑怎么开机 开启雷神911
- 下一篇: android 之四大组件的Activ