激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

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

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

2021-08-11 12:07占位符號(hào) Java教程

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

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

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

Java動(dòng)態(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. }

此時(shí)我們編譯一下Office.java 文件:

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

編譯會(huì)報(bào)錯(cuò),這當(dāng)然沒問題,因?yàn)榇_實(shí)沒有寫Excel.java類。

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

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

所以我們可以將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類,但此時(shí)我們?cè)倬幾gOffice.java文件,編譯通過;

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

運(yùn)行一下:

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

成功按照我們預(yù)想的結(jié)果運(yùn)行,這樣Word類就可以單獨(dú)運(yùn)行。

但是這樣還是不夠規(guī)范,因?yàn)楝F(xiàn)在只能加載Word類類型的類文件,為了使程序有更好的擴(kuò)展性,我們添加一個(gè)接口,只有讓所有的功能類實(shí)現(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. }

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

總結(jié)

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久经典国产视频 | 在线播放免费视频 | 欧洲精品久久 | 久久精品国产亚洲7777 | 性少妇videosexfreexxx片 | 日本在线不卡一区二区 | 成人在线视频播放 | 国产精品久久久久久久久久三级 | 国产一级免费电影 | 美国一级毛片片aa久久综合 | 欧美一区二区片 | 二级大黄大片高清在线视频 | 91精品国 | 日韩视频不卡 | 久草中文网| 国产一区二区国产 | chinese xvideos gay| 国产亚洲欧美在线视频 | 成人免费观看在线 | 一区二区三区精品国产 | 视频一区免费观看 | 国产一区二区视频观看 | 久久精品国产99国产精品亚洲 | 黄色aaa视频 | 怦然心动50免费完整版 | 久久国产精品久久久久久电车 | 色偷偷欧美 | 免费网站看毛片 | 国产精品亚洲综合 | 日本欧美一区 | 国内精品一级毛片免费看 | 在线中文字幕不卡 | 精国产品一区二区三区 | 亚洲aⅴ在线观看 | 黄色片免费看网站 | 亚洲小视频在线观看,com | 一级黄色大片在线观看 | 49vvv| 在线播放视频一区二区 | 久久国产夫妻视频 | 免费a级网站 |