一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Java動態(tài)加載類示例詳解

Java動態(tài)加載類示例詳解

2021-08-11 12:07占位符號 Java教程

這篇文章主要給大家介紹了關于Java動態(tài)加載類的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在講解動態(tài)加載類之前呢,我們先弄清楚為什么要動態(tài)加載類,靜態(tài)加載不行嗎?我們可以看下面的實例:

我在文件夾里寫了Office.java 類和 Word.java類,如下:

Java動態(tài)加載類示例詳解

Office.java

  1. class Office{
  2. public static void main(String[] args){
  3. if(args[0].equals("Word")){
  4. Word w = new Word();
  5. w.start();
  6. }
  7. if(args[0].equals("Excel")){
  8. Excel e = new Excel();
  9. e.start();
  10. }
  11. }
  12. }

Word.java

  1. class Word{
  2. public void start(){
  3. System.out.println("Word Start");
  4. }
  5. }

此時我們編譯一下Office.java 文件:

Java動態(tài)加載類示例詳解

編譯會報錯,這當然沒問題,因為確實沒有寫Excel.java類。

但是這個Excel類我們一定會用到嗎?如果這個Excel類需要很久才能寫出來,在此我們也不能使用其他功能嗎?后面如果一個類出問題了,這個系統(tǒng)是不是就癱瘓了?

所以這就體現(xiàn)出動態(tài)加載類的好處了,動態(tài)加載類是按需加載的,你需要什么類,就加載什么類,一個類的狀態(tài),不會影響到另一個類的使用。

所以我們可以將Office類改造如下:

  1. class Office{
  2. public static void main(String[] args){
  3. try{
  4. Class c = Class.forName(args[0]);
  5. Word w = (Word)c.newInstance();
  6. w.start();
  7. }
  8. catch(Exception e){
  9. e.printStackTrace();
  10. }
  11.  
  12. }
  13. }

雖然我們還是沒有寫Excel類,但此時我們再編譯Office.java文件,編譯通過;

Java動態(tài)加載類示例詳解

運行一下:

Java動態(tài)加載類示例詳解

成功按照我們預想的結果運行,這樣Word類就可以單獨運行。

但是這樣還是不夠規(guī)范,因為現(xiàn)在只能加載Word類類型的類文件,為了使程序有更好的擴展性,我們添加一個接口,只有讓所有的功能類實現(xiàn)該接口即可。完善如下:

OfficeAble.java

  1. interface OfficeAble{
  2. public void start();
  3. }

Office.java

  1. class Office{
  2. public static void main(String[] args){
  3. try{
  4. Class c = Class.forName(args[0]);
  5. OfficeAble oa = (OfficeAble)c.newInstance();
  6. oa.start();
  7. }
  8. catch(Exception e){
  9. e.printStackTrace();
  10. }
  11.  
  12. }
  13. }

Word.java

  1. class Word implements OfficeAble{
  2. public void start(){
  3. System.out.println("Word Start");
  4. }
  5. }

這樣改造之后,我后面要添加一個Excel類,乃至添加其他的類,只需要實現(xiàn)OfficeAble接口就可以了,不需要改動Office這個類和其他的功能類,擴展性很強,這就是動態(tài)加載的優(yōu)勢。

總結

到此這篇關于Java動態(tài)加載類的文章就介紹到這了,更多相關Java動態(tài)加載類內(nèi)容請搜索我們以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持我們!

原文鏈接:https://blog.csdn.net/zai_xia/article/details/80026325

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 波多野结衣在线看 | 亚州vs欧州vs日 | 精品久久久久久久久久久 | 午夜在线观看免费观看 视频 | 久久精品99国产精品日本 | 国产色司机在线视频免费观看 | 法国女佣系列在线播放 | 交换余生在线播放免费 | 欧美视频一区二区专区 | 91久久精品青青草原伊人 | 99热免费在线观看 | 国产未成女年一区二区 | 国产高清视频网站 | 草莓视频榴莲视频 | 国产午夜精品久久久久 | 啪啪免费网址 | 歪歪视频在线播放无遮挡 | 国产精品亚洲片在线不卡 | 国产成年人在线观看 | 亚洲一卡2卡4卡5卡6卡残暴在线 | 四虎www.| 国产成人高清精品免费观看 | 激情婷婷成人亚洲综合 | 美女无遮挡 | 91制片厂制作果冻传媒破解 | 美女脱了内裤打开腿让男人图片 | 日本大片网 | 国产综合成人亚洲区 | 亚洲精品国产自在现线最新 | 日本黄色网页 | 成人性用品 | 91桃色视频在线观看 | 小早川怜子息梦精在线播放 | 国产日韩成人 | 日本一区二区高清免费不卡 | 欧洲vodafonewifi日本 | 欧美黑人换爱交换乱理伦片 | 2012中文字幕中字视频 | 青青青手机视频在线观看 | 色综合久久九月婷婷色综合 | 国产精品免费观在线 |