摘要:反射概念反射機制是在運行狀態中,對于任意一個實體類,都能夠知道這個類的所有屬性和方法對于任意一個對象,都能夠調用它的任意方法和屬性這種動態獲取信息以及動態調用對象方法的功能稱為語言的反射機制。
java反射概念
JAVA反射機制是在運行狀態中,對于任意一個實體類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱為java語言的反射機制。
使用1.首先要獲取Class對象,有三種方法
Cat cat=new Cat(); Class cat1=Class.forName("com.ncu.reflect.Cat");//Class.forName("全類名") Class cat2=Cat.class; //類名.class Class cat3=cat.getClass(); //對象名.getclass()
2.獲取實體類的字段
Field[] getDeclaredFields() //獲取所有字段,不限修飾符 Field getDeclaredFields(String name) //獲取指定字段,不限修飾符 Field[] getFields() //獲取所有public修飾的成員變量 Field getField(String name) //獲取指定名稱的public修飾的成員變量 //獲取Cat類中所有字段,不限修飾符 Class cat1=Class.forName("com.ncu.reflect.Cat"); Field[] fields = cat1.getDeclaredFields();
3.Field類用來設置和獲取字段值的方法
Cat cat=new Cat(); Field age = cat1.getDeclaredField("age"); age.set(cat,"15"); //將cat對象age字段值設置為15 System.out.println(age.get(cat)); //獲取cat對象age字段值
4.獲取成員方法
跟獲取字段方法雷同 Method[] getMethods() Method getMethod(String name, 類>... parameterTypes) Method[] getDeclaredMethods() Method getDeclaredMethod(String name, 類>... parameterTypes) // Method eat = cat1.getMethod("eat", null);//獲取一個public修飾符,無參的eat函數 eat.invoke(cat); //調用eat函數
5.獲取構造函數
Constructor>[] getConstructors() Constructor使用場景getConstructor(類>... parameterTypes) Constructor getDeclaredConstructor(類>... parameterTypes) Constructor>[] getDeclaredConstructors() cat1.getConstructors();//獲取Cat類的無參構造函數
使用框架時有時候不知道有什么類,類有什么方法,就需要使用反射
可以將要使用的類和方法放在配置文件,不修改該類任何代碼,可以創建任意其他類的對象,可以執行任意方法,達到解耦功能。只需要改變配置文件
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75573.html
摘要:反射機制一結合官方通過編寫的反射教程,復習一下反射的知識。反射的概念反射是一種在運行時獲取以及修改應用行為的一種工具。因為反射需要動態的解析類的信息,相比于非反射使用的方式要慢。反射需要獲取一定的運行時權限,在特定的安全環境下不一定存在。 Java反射機制(一) 結合Oracle官方通過JDK8編寫的反射教程,復習一下反射的知識。結尾篇補一個小例子。 主要內容 這次博客的主要內容就是簡...
摘要:通過反射獲取帶參無返回值成員方法并使用設置安全檢查,訪問私有構造函數必須創建實例這種不行,注意和方法需要傳遞參數測試復制這個功能獲取私有方法,同樣注意和的區別賦予訪問權限調用方法。 反射 目錄介紹 1.反射概述 1.1 反射概述 1.2 獲取class文件對象的三種方式 1.3 反射常用的方法介紹 1.4 反射的定義 1.5 反射的組成 1.6 反射的作用有哪些 2.反射的...
摘要:反射使用類對象提供的基本元數據,能從類對象中找出方法或字段的名稱,然后獲取表示方法或字段的對象。常見的反射手段有反射和反射。以之前的反射為例其中指定了方法的返回類型,其實不止如此。 Java反射機制主要提供了以下功能: 在運行時判斷任意一個對象所屬的類 在運行時構造任意一個類的對象 在運行時判斷任意一個類所具有的成員變量和方法 在運行時調用任意一個對象的方法 生成動態代理 很多框架...
近期在維護公司項目的時候遇到一個問題,因為實體類中的 set 方法涉及到了業務邏輯,因此在給對象賦值的過程中不能夠使用 set 方法,為了實現功能,所以采用了反射的機制給對象屬性賦值,借此機會也了解了反射的一些具體用法和使用場景,分以下兩點對反射進行分析: 反射的優勢和劣勢 反射的應用場景 反射的優勢和劣勢 ??個人理解,反射機制實際上就是上帝模式,如果說方法的調用是 Java 正確的打開方式...
摘要:一反射機制概念程序運行時,允許改變程序結構或變量類型,這種語言稱為動態語言,如,是動態語言顯然,,不是動態語言,但是有著一個非常突出的動態相關機制。相關的為二獲取源頭重點打開權限所有類的對象其實都是的實例。 一、Java反射機制概念 程序運行時,允許改變程序結構或變量類型,這種語言稱為動態語言,如Python, Ruby是動態語言;顯然C++,Java,C#不是動態語言,但是JAVA有...
閱讀 1764·2021-09-28 09:43
閱讀 1116·2021-09-23 11:22
閱讀 2722·2021-09-14 18:05
閱讀 1826·2019-08-30 15:52
閱讀 2816·2019-08-30 10:55
閱讀 2013·2019-08-29 16:58
閱讀 1326·2019-08-29 16:37
閱讀 3037·2019-08-29 16:25