成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java進階之反射的簡單應用:通過反射運行配置文件內(nèi)容

lingdududu / 917人閱讀

摘要:其實這只是一個簡單的小例子,目的是讓大家知道這種思想,這種思想是很重要的,而框架就是基于反射機制,通過修改配置文件來實現(xiàn)需求。

現(xiàn)在有三個類:Student、Teacher、Doctor和一個測試類:Test,先上代碼:

public class Student {
    public void love()
    {
        System.out.println("愛編程,愛Java");
    }
}
public class Teacher {
    public void love() {
        System.out.println("只愛學生");
    }
}
public class Doctor {
    public void love() {
        System.out.println("專治各種不服");
    }
}
public class Test{
    public static void main(String[] args)
    {
        Student s=new Student();
        s.love();
        
        //Teacher t=new Teacher();
        //t.love();
        
        //Doctor d=new Doctor();
        //d.love();
        
    }
}

如果按照以上的方法,每一次需求變更,這一次是Student類,下一次是Teacher類,再下一次是Doctor類,那豈不是每一次都要改源程序?(其實在實際開發(fā)中經(jīng)常遇到需求變更)那可不可以不改源程序就能應對大量的需求變更呢?答案是可以的,通過Java給我們提供的反射機制,不改源程序,只對配置文件做修改即可。下面附上代碼和配置文件內(nèi)容:

public class Test {

    public static void main(String[] args) throws Exception {
        
        //Properties類用于讀取配置文件的鍵值對
        Properties p=new Properties();
        FileReader fr=new FileReader("class.txt");
        p.load(fr);
        //通過鍵獲得值
        String className=p.getProperty("className");
        String methodName=p.getProperty("methodName");
        //創(chuàng)建字節(jié)碼文件對象,獲得無參構造方法對象
        Class clazz=Class.forName(className);
        Constructor con=clazz.getConstructor();
        //通過構造方法獲得實例對象
        Object obj=con.newInstance();
        //獲得成員方法對象
        Method met=clazz.getDeclaredMethod(methodName);
        //調(diào)用方法
        met.invoke(obj);
        
    }

}
className=com.ls.reflect.Doctor//注意,這里是  包名.類名
methodName=love

   注釋已經(jīng)很詳細了,以后只需改配置文件就行了。

   其實這只是一個簡單的小例子,目的是讓大家知道這種思想,這種思想是很重要的,
   而Spring框架就是基于反射機制,通過修改配置文件來實現(xiàn)需求。

   所以學好反射能更加清楚地了解Spring框架。

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66258.html

相關文章

  • Java相關

    摘要:本文是作者自己對中線程的狀態(tài)線程間協(xié)作相關使用的理解與總結,不對之處,望指出,共勉。當中的的數(shù)目而不是已占用的位置數(shù)大于集合番一文通版集合番一文通版垃圾回收機制講得很透徹,深入淺出。 一小時搞明白自定義注解 Annotation(注解)就是 Java 提供了一種元程序中的元素關聯(lián)任何信息和著任何元數(shù)據(jù)(metadata)的途徑和方法。Annotion(注解) 是一個接口,程序可以通過...

    wangtdgoodluck 評論0 收藏0
  • PHP 進階路 - 后端多元化快速切入 Java 開發(fā)

    摘要:以實現(xiàn)自己熟悉的東西為導向比如我們做后端開發(fā),首先是常用的循環(huán)迭代條件判斷增刪改成。它是由實現(xiàn)的,不保證元素的順序,也就是說所說元素插入的順序與輸出的順序不一致。 下面是我直播的文字版,直播地址:https://segmentfault.com/l/15...代碼:https://github.com/zhoumengka...整個項目我們我又細分了6個版本來演進,希望更加便于大家對比...

    Cristic 評論0 收藏0
  • PHP 進階路 - 后端多元化快速切入 Java 開發(fā)

    摘要:以實現(xiàn)自己熟悉的東西為導向比如我們做后端開發(fā),首先是常用的循環(huán)迭代條件判斷增刪改成。它是由實現(xiàn)的,不保證元素的順序,也就是說所說元素插入的順序與輸出的順序不一致。 下面是我直播的文字版,直播地址:https://segmentfault.com/l/15...代碼:https://github.com/zhoumengka...整個項目我們我又細分了6個版本來演進,希望更加便于大家對比...

    xi4oh4o 評論0 收藏0
  • Java深入-框架技巧

    摘要:從使用到原理學習線程池關于線程池的使用,及原理分析分析角度新穎面向切面編程的基本用法基于注解的實現(xiàn)在軟件開發(fā)中,分散于應用中多出的功能被稱為橫切關注點如事務安全緩存等。 Java 程序媛手把手教你設計模式中的撩妹神技 -- 上篇 遇一人白首,擇一城終老,是多么美好的人生境界,她和他歷經(jīng)風雨慢慢變老,回首走過的點點滴滴,依然清楚的記得當初愛情萌芽的模樣…… Java 進階面試問題列表 -...

    chengtao1633 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<