日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

01_反射_02_反射类的构造方法

發(fā)布時(shí)間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01_反射_02_反射类的构造方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【工程截圖】

?

?

【Person.java】 //將要被反射的類

package com.Higgin.reflect; import java.util.List;public class Person {private String name="NULL";private int age=0;public Person(){System.out.println("構(gòu)造方法:Person()");}public Person(String name){System.out.println("構(gòu)造方法:Person(String name)");this.name=name;}public Person(String name,int age){this.name=name;this.age=age;System.out.println("構(gòu)造方法:Person(String name,int age)");}/*** 注意:是private 私有的!!!!!!!!*/private Person(List list){System.out.println("構(gòu)造方法:Person(List list)");System.out.println("list.get(0):"+list.get(0));}public void sayHello(){System.out.println(name+" say: hello world!");System.out.println("I'm "+age+" years old");} }

【情況一】

【Demo01.java】測(cè)試反射無參構(gòu)造方法Person()

/** 反射Person類的 Person()構(gòu)造方法,創(chuàng)建類的對(duì)象* @throws Exception*/@Testpublic void test1() throws Exception{Class clazz=Class.forName("com.Higgin.reflect.Person");//反射構(gòu)造方法:public Person()Constructor c=clazz.getConstructor(null); Person p=(Person)c.newInstance(null);p.sayHello();}

【運(yùn)行結(jié)果】

?

【情況二】

【Demo01.java】測(cè)試反射有參構(gòu)造方法Person(Strng name)

/** 反射構(gòu)造方法:public Person(String name)*/@Testpublic void test2() throws Exception{Class clazz=new Person().getClass(); //注意,這里其實(shí)已經(jīng)先創(chuàng)建了一個(gè)對(duì)象(因?yàn)閚ew Person())//反射構(gòu)造方法:public Person(String name)Constructor c=clazz.getConstructor(String.class);Person p=(Person) c.newInstance("Jack");p.sayHello();}

【運(yùn)行結(jié)果】

?

【情況三】

【Demo01.java】測(cè)試Person(String name,int age)的情況

/** 反射構(gòu)造方法:public Person(String name,int age)*/@Testpublic void test3() throws Exception{Class clazz=Person.class;//反射構(gòu)造方法:public Person(String name,int age)Constructor c=clazz.getConstructor(String.class,int.class);Person p=(Person) c.newInstance("Jack",18);p.sayHello();}

【運(yùn)行結(jié)果】

?

?【情況三】

【Dem01.java】測(cè)試private Person(List list)的i情況,注意是私有的

/** 注意是私有的* 反射構(gòu)造方法:private Person(List list)*/@Testpublic void test4() throws Exception{Class clazz=Person.class;//反射構(gòu)造方法:private Person(List list)Constructor c=clazz.getDeclaredConstructor(List.class); c.setAccessible(true); //暴力反射,沒有這句會(huì)出錯(cuò)的!!!!!!!!List list=new ArrayList();list.add("6666666");Person p=(Person) c.newInstance(list);p.sayHello();}

【運(yùn)行結(jié)果】

?

?

【創(chuàng)建對(duì)象的另外一種寫法】等同于test1()的測(cè)試方法

/*** 創(chuàng)建對(duì)象的另外一種方式* @throws Exception*/@Testpublic void test5() throws Exception{Class clazz=Class.forName("com.Higgin.reflect.Person");Person p=(Person)clazz.newInstance(); //本質(zhì)就是反射類的無參構(gòu)造方法反射對(duì)象 p.sayHello();}

【運(yùn)行結(jié)果】

?

轉(zhuǎn)載于:https://www.cnblogs.com/HigginCui/p/5767098.html

總結(jié)

以上是生活随笔為你收集整理的01_反射_02_反射类的构造方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。