亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Java項目中動態加載類

發布時間:2021-02-22 15:20:08 來源:億速云 閱讀:203 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關如何在Java項目中動態加載類,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Java是什么

Java是一門面向對象編程語言,可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序。

Office.java 類和 Word.java類,如下:

如何在Java項目中動態加載類

Office.java

class Office{
	public static void main(String[] args){
		if(args[0].equals("Word")){
			Word w = new Word();
			w.start();
		}
		if(args[0].equals("Excel")){
			Excel e = new Excel();
			e.start();
		}
	}
}

Word.java

class Word{
	public void start(){
		System.out.println("Word Start");
	}
}

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

如何在Java項目中動態加載類

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

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

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

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

class Office{
	public static void main(String[] args){
		try{
			Class c = Class.forName(args[0]);
			Word w = (Word)c.newInstance();
			w.start();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		
	}
}

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

如何在Java項目中動態加載類

運行一下:

如何在Java項目中動態加載類

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

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

OfficeAble.java

interface OfficeAble{
	public void start();
}

Office.java

class Office{
	public static void main(String[] args){
		try{
			Class c = Class.forName(args[0]);
			OfficeAble oa = (OfficeAble)c.newInstance();
			oa.start();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		
	}
}

Word.java

class Word implements OfficeAble{
	public void start(){
		System.out.println("Word Start");
	}
}

上述就是小編為大家分享的如何在Java項目中動態加載類了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灌云县| 当涂县| 苏尼特右旗| 顺平县| 长泰县| 合川市| 巫山县| 攀枝花市| 永仁县| 板桥市| 新营市| 远安县| 平和县| 丰原市| 安龙县| 左云县| 德格县| 娄烦县| 廉江市| 育儿| 郑州市| 阿拉尔市| 铜鼓县| 汨罗市| 三穗县| 华坪县| 格尔木市| 南通市| 寿光市| 大邑县| 平武县| 崇左市| 武平县| 鹰潭市| 四子王旗| 化德县| 西宁市| 东乡族自治县| 湘西| 金溪县| 庆城县|