Java反射之靜態載入和動態載入舉例小記

來源:互聯網
上載者:User

標籤:java

靜態載入:

package com.imooc.載入類;public class Office_Static {public static void main(String[] args) {//new 建立對象,是靜態載入類,在編譯時間刻就需要載入所有的可能使用到的類if("Word".equals(args[0])){Word w = new Word();w.start();}if("Excel".equals(args[0])){Excel e = new Excel();e.start();}}}
這個程式編譯時間必須有Word和Excel這兩個類存在才行,即使判斷後用不到Excel也要載入


動態載入:

            1、介面OfficeAble :

package com.imooc.載入類;public interface OfficeAble {public void start();}
            2、Word實現介面:

package com.imooc.載入類;public class Word implements OfficeAble{public void start(){System.out.println("word start");}}
               3、Excel實現介面:


package com.imooc.載入類;public class Excel implements OfficeAble{public void start(){System.out.println("excel start");}}

               4、Main方法

package com.imooc.載入類;public class OfficeBetter {/** * @param args */public static void main(String[] args) {try {//動態載入類,在運行時刻載入Class c = Class.forName(args[0]);//在回合組態裡面輸入com.imooc.載入類.Excel//通過類類型,建立該類對象(先轉換為Word和Excel的共同介面OfficeAble)OfficeAble oa = (OfficeAble)c.newInstance();oa.start();//不推薦下面兩種,因為不確定是載入Word還是Excel,要強轉//Word word = (Word)c.newInstance();//word.start();//Excel excel = (Excel)c.newInstance();//excel.start();} catch (Exception e) {e.printStackTrace();}}}



Java反射之靜態載入和動態載入舉例小記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.