摘要:知識點(diǎn)總結(jié)反射獲取類的信息知識點(diǎn)總結(jié)反射應(yīng)用反射的,獲取類的信息類的名字屬性方法構(gòu)造器等獲取類名類的全路徑名稱類名獲取屬性信息只能獲取的屬性獲取所有的屬性根據(jù)屬性名稱獲取屬性根據(jù)屬性名稱獲取屬性獲取方法信息獲取所有的方法,包括父類的方法獲
Java知識點(diǎn)總結(jié)(反射-獲取類的信息)
@(Java知識點(diǎn)總結(jié))[Java, 反射]
應(yīng)用反射的API,獲取類的信息(類的名字、屬性、方法、構(gòu)造器等)
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class Test02 { // 獲取類名 private static void getName(Class clazz){ String name = clazz.getName(); System.out.println(name); // com.gs.Student 類的全路徑名稱 String simpleName = clazz.getSimpleName() ; System.out.println(simpleName); // Student 類名 } // 獲取屬性信息 private static void getFields(Class clazz){ Field[] fields = clazz.getFields() ; // 只能獲取 public 的屬性 for (Field f : fields) { System.out.println(f); // public double com.gs.Student.score } Field[] declaredFields = clazz.getDeclaredFields() ; // 獲取所有的屬性 for (Field df : declaredFields) { System.out.println(df); } try { Field field = clazz.getField("score"); //根據(jù)屬性名稱獲取public 屬性 System.out.println(field); Field declaredField = clazz.getDeclaredField("name"); System.out.println(declaredField); //根據(jù)屬性名稱獲取 private 屬性 } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } // 獲取方法信息 public static void getMethod(Class clazz){ Method[] methods = clazz.getMethods() ; //獲取所有的 public 方法,包括父類的方法 for (Method m : methods) { System.out.println(m); } System.out.println("~~~~~~~~~~~"); Method[] declaredMethods = clazz.getDeclaredMethods(); // 獲取本類聲明的所有的方法 for (Method dm : declaredMethods) { System.out.println(dm); } try { Method m = clazz.getMethod("getName", null); //獲取指定名字的方法,后面的形參表示獲取方法的參數(shù)類類型 System.out.println(m); //如果方法有參,則必須傳遞參數(shù)類型對應(yīng)的 Class 對象 Method dm = clazz.getDeclaredMethod("setName", String.class); System.out.println(dm); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } // 獲取構(gòu)造方法信息 public static void getConstructor(Class clazz){ try { // 獲取指定名稱的構(gòu)造方法 Constructor c = clazz.getDeclaredConstructor(int.class,String.class); System.out.println(c); //獲取所有構(gòu)造方法 Constructor[] cs= clazz.getConstructors() ; for (Constructor constructor : cs) { System.out.println(constructor); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } public static void main(String[] args) { String path = "com.gs.Student"; try { Class clazz = Class.forName(path); //getName(clazz); //getFields(clazz); //getMethod(clazz); getConstructor(clazz); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71581.html
摘要:知識點(diǎn)總結(jié)反射介紹知識點(diǎn)總結(jié)反射反射程序在運(yùn)行狀態(tài)中,可以動態(tài)加載一個只有名稱的類動態(tài)調(diào)用類的所有屬性和方法加載完類之后,在堆內(nèi)存中,就產(chǎn)生了一個類型的對象一個類只有一個對象。 Java知識點(diǎn)總結(jié)(反射-介紹) @(Java知識點(diǎn)總結(jié))[Java, 反射] 反射 程序在 運(yùn)行狀態(tài)中 ,可以動態(tài)加載一個只有名稱的類 (動態(tài)調(diào)用類的所有屬性和方法)Class c = Class.for...
摘要:知識點(diǎn)總結(jié)反射通過反射操作類的屬性和方法知識點(diǎn)總結(jié)反射使用反射操作類的屬性和方法通過反射調(diào)用構(gòu)造方法,構(gòu)造對象其實(shí)調(diào)用無參構(gòu)造器張三調(diào)用有參構(gòu)造器李四通過反射調(diào)用普通方法獲取方法激活方法王武王武通過反射操作屬性是屬性,如果不寫會這個私有屬 Java知識點(diǎn)總結(jié)(反射-通過反射操作類的屬性和方法 ) @(Java知識點(diǎn)總結(jié))[Java, 反射] 使用反射操作類的屬性和方法: import ...
摘要:反射機(jī)制一結(jié)合官方通過編寫的反射教程,復(fù)習(xí)一下反射的知識。反射的概念反射是一種在運(yùn)行時獲取以及修改應(yīng)用行為的一種工具。因?yàn)榉瓷湫枰獎討B(tài)的解析類的信息,相比于非反射使用的方式要慢。反射需要獲取一定的運(yùn)行時權(quán)限,在特定的安全環(huán)境下不一定存在。 Java反射機(jī)制(一) 結(jié)合Oracle官方通過JDK8編寫的反射教程,復(fù)習(xí)一下反射的知識。結(jié)尾篇補(bǔ)一個小例子。 主要內(nèi)容 這次博客的主要內(nèi)容就是簡...
摘要:通過反射獲取無參構(gòu)造方法并使用得到無參構(gòu)造方法獲取所有的修飾的構(gòu)造方法。如果方法沒有返回值,返回的是反射獲取空參數(shù)成員方法并運(yùn)行代碼演示反射獲取成員方法并運(yùn)行獲取對象中的成員方法獲取的是文件中的所有公共成員方法包括繼承的類是描述 01類加載器 * A.類的加載 當(dāng)程序要使用某個類時,如果該類還未被加載到內(nèi)存中,則系統(tǒng)會通過加載,連接,初始化三步來實(shí)現(xiàn)對這個類進(jìn)行初始化。 ? ...
摘要:通過反射獲取帶參無返回值成員方法并使用設(shè)置安全檢查,訪問私有構(gòu)造函數(shù)必須創(chuàng)建實(shí)例這種不行,注意和方法需要傳遞參數(shù)測試復(fù)制這個功能獲取私有方法,同樣注意和的區(qū)別賦予訪問權(quán)限調(diào)用方法。 反射 目錄介紹 1.反射概述 1.1 反射概述 1.2 獲取class文件對象的三種方式 1.3 反射常用的方法介紹 1.4 反射的定義 1.5 反射的組成 1.6 反射的作用有哪些 2.反射的...
閱讀 2064·2021-10-08 10:04
閱讀 3092·2021-09-22 10:02
閱讀 2247·2019-08-30 15:56
閱讀 835·2019-08-30 15:54
閱讀 932·2019-08-30 15:54
閱讀 1288·2019-08-30 15:53
閱讀 2517·2019-08-30 11:21
閱讀 3564·2019-08-30 10:56