[Java基础]反射获取构造方法并使用练习
生活随笔
收集整理的這篇文章主要介紹了
[Java基础]反射获取构造方法并使用练习
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Student類代碼如下:
package ClassObjectPack;public class Student {private String name;int age;public String address;public Student(String name, int age, String address) {this.name = name;this.age = age;this.address = address;}public Student() {}private Student(String name) {this.name = name;}Student(String name, int age) {this.name = name;this.age = age;}private void function(){System.out.println("function");}public void method1(){System.out.println("method");}public void method2(String s){System.out.println("method:"+s);}public String method3(String s,int i){return s+","+i;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", address='" + address + '\'' +'}';} }代碼如下:
package ClassObjectPack01;import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException;public class ReflectDemo01 {public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {Class<?> c = Class.forName("ClassObjectPack.Student");// public Student(String name, int age, String address)//Constructor<T> getConstructor(類<?>... parameterTypes)//返回一個 Constructor對象,該對象反映 Constructor對象表示的類的指定的公共 類函數(shù)。Constructor<?> con = c.getConstructor(String.class, int.class, String.class);// T newInstance(Object... initargs)// 使用此 Constructor對象表示的構(gòu)造函數(shù),使用指定的初始化參數(shù)來創(chuàng)建和初始化構(gòu)造函數(shù)的聲明類的新實例。Object obj = con.newInstance("林青霞", 30, "西安");System.out.println(obj);} }測試結(jié)果:
代碼如下:
package ClassObjectPack01;import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException;public class ReflectDemo02 {public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {Class<?> c = Class.forName("ClassObjectPack.Student");// private Student(String name)//Constructor<T> getConstructor(類<?>... parameterTypes)//返回一個 Constructor對象,該對象反映 Constructor對象表示的類的指定的公共 類函數(shù)。Constructor<?> con = c.getDeclaredConstructor(String.class);//我們無法通過私有構(gòu)造創(chuàng)建對象 // Object obj = con.newInstance("林青霞"); // System.out.println(obj);//暴力反射//public void setAccessible (boolean flag):值為true,取消訪問檢查con.setAccessible(true);Object obj = con.newInstance("林青霞");System.out.println(obj);} }測試結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的[Java基础]反射获取构造方法并使用练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下半身一直瘦不下去,怎么能瘦腿
- 下一篇: [Java基础]反射获取成员变量并使用