一、使用反射機制來 (1)獲取一個類; (2)獲取類的構造函數 (3)通過構造函數來獲取一個對象 package com.bjpowernode.java_learning; import java.lang.reflect.*; public class D120_1_ConstructerO ...
一、使用反射機制來
(1)獲取一個類;
(2)獲取類的構造函數
(3)通過構造函數來獲取一個對象
package com.bjpowernode.java_learning; import java.lang.reflect.*; public class D120_1_ConstructerOfClass { public static void main(String[] args) throws Exception{ //1.獲取類 Class c = Class.forName("com.bjpowernode.java_learning.D120_Customer"); //2.獲取特定的構造方法 Constructor con = c.getDeclaredConstructor(String.class,int.class); //3.創建對象 Object o = con.newInstance("張三",25); System.out.println(o); } } class D120_Customer{ String name; int age; D120_Customer(String name,int age){ this.name = name; this.age = age; } public String toString() { return "Customer[" + name + "," + age + "]"; } }
二、關於類獲取父類和父介面
package com.bjpowernode.java_learning; import java.lang.reflect.*; public class D120_2_ParentClassAndInterfaceOfClass { public static void main(String[] args) throws Exception{ Class c = Class.forName("java.lang.String"); //獲取父類 Class superClass = c.getSuperclass(); System.out.println(superClass.getName()); System.out.println("================"); //獲取父介面 Class[] ins = c.getInterfaces(); for(Class in:ins) { System.out.println(in.getName()); } } }
三、反射的缺點
(1)性能問題。反射機制不是直接執行代碼,性能問題的程度取決於程式中是如何使用反射的,如果他作為程式運行中相對很少涉及的部分,緩慢的性能將不會是問題。
(2)使用反射會模糊程式內部實際要發生的事情。
四、源碼:
D120_1_ConstructerOfClass.java
D120_2_ParentClassAndInterfaceOfClass.java
https://github.com/ruigege66/Java/blob/master/D120_1_ConstructerOfClass.java
https://github.com/ruigege66/Java/blob/master/D120_2_ParentClassAndInterfaceOfClass.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料