新聞中心
今天小編給大家分享一下Java的反射機制是什么及怎么獲取的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務仲巴,十余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
Java反射機制
Java 反射機制是在運行狀態(tài)中,對于任意一個類,都能夠獲得這個類的所有屬性和方法,對于任意一個對象都能夠調(diào)用它的任意一個屬性和方法。這種在運行時動態(tài)的獲取信息以及動態(tài)調(diào)用對象的方法的功能稱為 Java 的反射機制。
Class 類與 java.lang.reflect 類庫一起對反射的概念進行了支持,該類庫包含了 Field,Method,Constructor 類 (每個類都實現(xiàn)了 Member 接口)。這些類型的對象時由 JVM 在運行時創(chuàng)建的,用以表示未知類里對應的成員。這樣你就可以使用 Constructor 創(chuàng)建新的對象,用 get() 和 set() 方法讀取和修改與 Field 對象關(guān)聯(lián)的字段,用invoke() 方法調(diào)用與 Method 對象關(guān)聯(lián)的方法。
另外,還可以調(diào)用 getFields() getMethods() 和getConstructors() 等很便利的方法,以返回表示字段,方法,以及構(gòu)造器的對象的數(shù)組。這樣匿名對象的信息
就能在運行時被完全確定下來,而在編譯時不需要知道任何事情。
package com.microSpringboot.ReadingList.reflect;
import java.lang.reflect.Constructor;
public class ReflectTest {
public static void main(String[] args) throws Exception {
Class clazz = null;
clazz = Class.forName("com.microSpringboot.ReadingList.reflect.Fruit");
Constructor constructor1 = clazz.getConstructor();
Constructor constructor2 = clazz.getConstructor(String.class);
Fruit fruit1 = constructor1.newInstance();
Fruit fruit2 = constructor2.newInstance("Apple");
}
}
class Fruit {
public Fruit() {
System.out.println("無參構(gòu)造器 Run...........");
}
public Fruit(String type) {
System.out.println("有參構(gòu)造器 Run..........." + type);
}
} 運行結(jié)果: 無參構(gòu)造器 Run……….. 有參構(gòu)造器 Run………..Apple
Java獲取反射的三種方法
1.通過new對象實現(xiàn)反射機制
2.通過路徑實現(xiàn)反射機制
3.通過類名實現(xiàn)反射機制
package com.microSpringboot.ReadingList.reflect;
public class Student {
private int id;
private String name;
protected boolean sex;
public float score;
}package com.microSpringboot.ReadingList.reflect;
public class Get {
//獲取反射機制三種方式
public static void main(String[] args) throws ClassNotFoundException {
//方式一(通過建立對象)
Student student = new Student();
Class stuClass1 = student.getClass();
System.out.println(stuClass1.getName());
//方式二(所在通過路徑-相對路徑)
Class stuClass2 = Class.forName("com.microSpringboot.ReadingList.reflect.Student");
System.out.println(stuClass2.getName());
//方式三(通過類名)
Class stuClass3 = Student.class;
System.out.println(stuClass3.getName());
}
}以上就是“Java的反射機制是什么及怎么獲取”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享標題:Java的反射機制是什么及怎么獲取
當前鏈接:http://www.dlmjj.cn/article/ippcej.html


咨詢
建站咨詢
