JAVA之反射學習2-獲取構造方法並使用
- 步驟:
1.獲取類的物件
2.獲取所需要的構造方法
3.將方法例項化(newInstance)並使用 - 方法
1.Constructor<?>[] getConstructors()返回所有公共建構函式方法的陣列
2.Constructor<?>[] getDeclaredConstructors()返回所有建構函式的陣列
3.Constructor getConstructor(Class<?>… parameterTypes)返回單個公共建構函式
4.Constructor getDeclaredConstructor(Class<?>返回單個指定建構函式
總結:加declare為全部,不加為公共; - 程式碼
package com.itheima_03;
import com.itheima_02.Student;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
/*
反射獲取構造方法並使用
*/
public class ReflectDemo01 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
//獲取Class物件
Class<?> c = Class.forName("com.itheima_02.Student");
//Constructor<?>[] getConstructors() 返回一個包含 Constructor物件的陣列, Constructor物件反映了由該 Class物件表示的類的所有公共建構函式
// Constructor<?>[] cons = c.getConstructors();
//Constructor<?>[] getDeclaredConstructors() 返回反映由該 Class物件表示的類宣告的所有建構函式的 Constructor物件的陣列
Constructor<?>[] cons = c.getDeclaredConstructors();
for(Constructor con : cons) {
System.out.println(con);
}
System.out.println("--------");
//Constructor<T> getConstructor(Class<?>... parameterTypes) 返回一個 Constructor物件,該物件反映由該 Class物件表示的類的指定公共建構函式
//Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) 返回一個 Constructor物件,該物件反映由此 Class物件表示的類或介面的指定建構函式
//引數:你要獲取的構造方法的引數的個數和資料型別對應的位元組碼檔案物件
Constructor<?> con = c.getConstructor();
//Constructor提供了一個類的單個建構函式的資訊和訪問許可權
//T newInstance(Object... initargs) 使用由此 Constructor物件表示的建構函式,使用指定的初始化引數來建立和初始化建構函式的宣告類的新例項
//instance例子 即例項化
Object obj = con.newInstance();
System.out.println(obj);
// Student s = new Student();
// System.out.println(s);
}
}
- 例項
Class<?> c = Class.forName("com.itheima_02.Student");
Constructor<?> con = c.getDeclaredConstructor(String.class,int.class,String.class);
Object obj = con.newInstance("阿giao",30,"山西");
System.out.println(obj);
相關文章
- JAVA之反射學習3-反射獲取成員變數並賦值Java反射變數賦值
- JAVA之反射學習1-如何獲取Class物件Java反射物件
- Java 通過反射獲取類的資訊(成員變數,成員方法,構造方法)Java反射變數構造方法
- java學習之深入構造器Java
- Java學習之反射篇Java反射
- PHP --反射 --獲取類的方法PHP反射
- JAVA基礎學習篇之反射Java反射
- 【Java 反射學習】Java 反射基礎Java反射
- [Java 反射學習] Java 反射基礎Java反射
- Java學習:反射Java反射
- Java學習_反射Java反射
- java反射學習(一)Java反射
- java反射之動態代理學習筆記Java反射筆記
- java反射構建物件和方法的反射呼叫Java反射物件
- Java--構造器和構造方法Java構造方法
- 機器學習之使用sklearn構造決策樹模型機器學習模型
- hive學習之五:java通過zookeeper獲取active namenode地址。HiveJava
- Java之獲取隨機數的4種方法Java隨機
- 對比分析Java反射獲取例項的速度Java反射
- vue專案中獲取外部js,並使用其中方法VueJS
- Java學習筆記系列-反射Java筆記反射
- java學習路程(javaEE)之獲取表單資料、獲取引數、request域、會話技術(Cookie)Java會話Cookie
- 如何獲取Cookie並使用Cookie侵入Cookie
- java——繼承遇到構造方法Java繼承構造方法
- java反射機制的學習心得Java反射
- 反射--Class物件功能--獲取Method反射物件
- Java知識點總結(反射-獲取類的資訊)Java反射
- Java 方法的反射Java反射
- Java進階學習之Java架構師的學習路線Java架構
- Java開發學習(六)----DI依賴注入之setter及構造器注入解析Java依賴注入
- C#通過反射獲取類中的方法和引數個數,反射呼叫方法帶引數C#反射
- Go 之基礎速學 (十三) golang 裡包的特殊使用和 init () 構造方法的使用Golang構造方法
- Java獲取Object中Value的方法JavaObject
- java技術培訓之File類中常用的構造方法Java構造方法
- JAVA核心技術學習筆記--反射Java筆記反射
- Java註解與反射學習筆記Java反射筆記
- Java獲取使用者IPJava
- 機器學習之使用sklearn構建據類模型,並且評價模型機器學習模型