精品丰满熟女一区二区三区_五月天亚洲欧美综合网_亚洲青青青在线观看_国产一区二区精选

  • <menu id="29e66"></menu>

    <bdo id="29e66"><mark id="29e66"><legend id="29e66"></legend></mark></bdo>

  • <pre id="29e66"><tt id="29e66"><rt id="29e66"></rt></tt></pre>

      <label id="29e66"></label><address id="29e66"><mark id="29e66"><strike id="29e66"></strike></mark></address>
      學(xué)習(xí)啦>知識(shí)大全>方法百科>產(chǎn)品使用方法>

      java 反射調(diào)用set方法

      時(shí)間: 陳哲凡673 分享

        Java語(yǔ)言中的許多庫(kù)類名稱,多與咖啡有關(guān)。下面是學(xué)習(xí)啦小編為您帶來(lái)的java 反射調(diào)用set方法,希望對(duì)大家有所幫助。

        java 反射調(diào)用set方法:

        import java.beans.PropertyDescriptor;

        import java.lang.reflect.Field;

        import java.lang.reflect.Method;

        public class ReflectTest {

        public static void main(String[] args) throws Exception {

        Class clazz = Class.forName("TaskProvidePropsList");//這里的類名是全名。。有包的話要加上包名

        Object obj = clazz.newInstance();

        Field[] fields = clazz.getDeclaredFields();

        //寫(xiě)數(shù)據(jù)

        for(Field f : fields) {

        PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);

        Method wM = pd.getWriteMethod();//獲得寫(xiě)方法

        wM.invoke(obj, 2);//因?yàn)橹朗莍nt類型的屬性,所以傳個(gè)int過(guò)去就是了。。實(shí)際情況中需要判斷下他的參數(shù)類型

        }

        //讀數(shù)據(jù)

        for(Field f : fields) {

        PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);

        Method rM = pd.getReadMethod();//獲得讀方法

        Integer num = (Integer) rM.invoke(obj);//因?yàn)橹朗莍nt類型的屬性,所以轉(zhuǎn)換成integer就是了。。也可以不轉(zhuǎn)換直接打印

        System.out.println(num);

        }

        }

        }

        Java相關(guān)知識(shí)點(diǎn)拓展:

        JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性;這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為java語(yǔ)言的反射機(jī)制。

        JAVA反射(放射)機(jī)制:“程序運(yùn)行時(shí),允許改變程序結(jié)構(gòu)或變量類型,這種語(yǔ)言稱為動(dòng)態(tài)語(yǔ)言”。從這個(gè)觀點(diǎn)看,Perl,Python,Ruby是動(dòng)態(tài)語(yǔ)言,C++,Java,C#不是動(dòng)態(tài)語(yǔ)言。但是JAVA有著一個(gè)非常突出的動(dòng)態(tài)相關(guān)機(jī)制:Reflection,用在Java身上指的是我們可以于運(yùn)行時(shí)加載、探知、使用編譯期間完全未知的classes。換句話說(shuō),Java程序可以加載一個(gè)運(yùn)行時(shí)才得知名稱的class,獲悉其完整構(gòu)造(但不包括methods定義),并生成其對(duì)象實(shí)體、或?qū)ζ鋐ields設(shè)值、或喚起其methods。

      551702