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反射構造方法
- Java學習之反射篇Java反射
- PHP --反射 --獲取類的方法PHP反射
- JAVA基礎學習篇之反射Java反射
- 【Java 反射學習】Java 反射基礎Java反射
- [Java 反射學習] Java 反射基礎Java反射
- Java學習:反射Java反射
- Java學習_反射Java反射
- Java反射學習Java反射
- 反射-通過反射獲取無參無返回值成員方法、帶參帶返回值成員方法並使用反射
- Java之反射--練習Java反射
- java之繼承中的構造方法Java繼承構造方法
- java反射學習(一)Java反射
- java反射之動態代理學習筆記Java反射筆記
- Java高階特性之反射學習總結Java反射
- 通過Java反射動態獲取資訊Java反射
- java反射構建物件和方法的反射呼叫Java反射物件
- Java反射機制demo(五)—獲得並呼叫一個類中的方法Java反射
- hive學習之五:java通過zookeeper獲取active namenode地址。HiveJava
- Java學習筆記--反射Java筆記反射
- Java反射獲取類和物件資訊全解析Java反射物件
- Java學習之反射機制及應用場景Java反射
- Java學習筆記系列-反射Java筆記反射
- 對比分析Java反射獲取例項的速度Java反射
- Java之獲取隨機數的4種方法Java隨機
- springMvc原始碼學習之:spirngMvc獲取請求引數的方法SpringMVC原始碼
- vue專案中獲取外部js,並使用其中方法VueJS
- java學習路程(javaEE)之獲取表單資料、獲取引數、request域、會話技術(Cookie)Java會話Cookie
- java——繼承遇到構造方法Java繼承構造方法
- 如何獲取Cookie並使用Cookie侵入Cookie