[Java基础]反射获取成员变量并使用
生活随笔
收集整理的這篇文章主要介紹了
[Java基础]反射获取成员变量并使用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代碼如下:
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.constant.DynamicCallSiteDesc; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException;public class ReflectDemo03 {public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchFieldException {Class<?> c = Class.forName("ClassObjectPack.Student");// Field getField(String name) // 返回一個(gè) Field對(duì)象,它反映此表示的類(lèi)或接口的指定公共成員字段 類(lèi)對(duì)象。 // Field[] getFields() // 返回包含一個(gè)數(shù)組 Field對(duì)象反射由此表示的類(lèi)或接口的所有可訪問(wèn)的公共字段 類(lèi)對(duì)象。// Field getDeclaredField(String name) // 返回一個(gè) Field對(duì)象,它反映此表示的類(lèi)或接口的指定已聲明字段 類(lèi)對(duì)象。 // Field[] getDeclaredFields() // 返回的數(shù)組 Field對(duì)象反映此表示的類(lèi)或接口聲明的所有字段 類(lèi)對(duì)象。Field[] fields = c.getFields();for (Field field:fields){System.out.println(field);}System.out.println("-----------------------------------");Field[] fields01 = c.getDeclaredFields();for (Field field:fields01){System.out.println(field);}System.out.println("--------------------------------------");Field addressField = c.getField("address");//獲取無(wú)參構(gòu)造方法創(chuàng)建對(duì)象Constructor<?> con = c.getConstructor();Object obj = con.newInstance();addressField.set(obj,"西安");System.out.println(obj);} }測(cè)試結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的[Java基础]反射获取成员变量并使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 吃减肥药后感觉到恶心,还睡不着觉该怎么办
- 下一篇: 热了可以减肥吗