日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 反射 ppt_Java反射的基本使用

發布時間:2025/4/16 java 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 反射 ppt_Java反射的基本使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這里是修真院后端小課堂,每篇分享文從

【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴展思考】【更多討論】【參考文獻】

八個方面深度解析后端知識/技能,本篇分享的是:

【Java反射的基本使用】

背景介紹

JAVA反射機制是在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;

對于任意一個對象,都能夠調用它的任意一個方法;

這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制

知識剖析

類的加載

類的加載指的是將類的class文件讀入內存中,并為之創建一個java.lang.Class對象。

也就是說,當程序使用任何類時,系統都會為之建立一個java.lang.Class對象

類的加載由類加載器完成,類加載器通常由JVM提供

類對象

類是某一類對象的抽象,同樣,Class是對類進行的抽象,類的本質實際上也是一個對象

類對象用來存儲類的基本信息:類大小,類名稱,類的版本,繼承層次,以及消息與函數的映射表等

編碼實戰

獲取類對象:

可以通過

Class.forName,

類.class,

對象.getClass()

來獲得類的類對象

創建對象:

1.使用Class對象的newInstance()方法來創建對應類的實例

2.使用Class對象獲取Constructor對象,再調用Constructor對象的NewInstance方法來創建對應的實例

訪問屬性:

Class對象的getField()方法可以獲取該類的成員變量

然后使用Field對象提供的兩個方法可以讀取和設置成員變量

1.getXxx(Object obj)

2.setXxx(Object obj,Xxx val)

調用方法:

通過Class對象的getMethod()可以獲取指定的方法,返回一個Method對象

每個Method方法對應一個方法,通關它的invoke()方法來調用相應的方法

具體演示

創建一個類:

public class Class1 {

public int YYY=0;

public String name="這是改之前的name";

public void say(){

System.out.println("這是Class1的say方法");

}

public int getYYY() {

return YYY;

}

public void setYYY(int YYY) {

this.YYY = YYY;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

獲取類對象:

String classname = "Class1";

Class Clazz = Class.forName(classname);

創建對象:

Constructor c = Clazz.getConstructor();

Class1 aa =(Class1) c.newInstance();

訪問并設置成員變量:

Field f1 = Clazz.getDeclaredField("name");

f1.set(aa,"wanger");

調用方法:

Method m = Clazz.getMethod("setName", String.class);

m.invoke(aa,"李四");

也可以通過外部文件來配置要加載的類,通過修改文件中的信息來改變想要加載的類

在src目錄下建立一個文本文件,內容為:

class=Service1

通過讀取外部文件類獲取類名,并利用獲取的類名來進行加載:

File f1 = new File("C:\Users\kelis\IdeaProjects\Spring_A\src\spring.txt");

Properties config = new Properties();

config.load(new FileInputStream(f1));

String className = (String) config.get("class");

Class clazz = Class.forName(className);

更多討論:

反射和映射的區別

映射只是一種概念,通常是用代碼方式來表示種對應關系。

反射是一種技術,很多高級語言都有這種技術。具體作用就是通過一個獨立存在的對象,可以找到該對象的其他信息

反射有哪些應用場景呢

利用反射可以實現動態加載所需要的類,而不必修改程序的源代碼

還由許多框架中都用到了反射技術,如spring,通過配置文件類設置想要加載的類

反射的作用,或者通俗解釋下反射

實現動態加載類,增加了程序的靈活性,多用于各種開發框架

總結

以上是生活随笔為你收集整理的java 反射 ppt_Java反射的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。