91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何在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

绵竹市| 麻栗坡县| 景东| 涟水县| 北川| 台湾省| 永春县| 延津县| 红桥区| 宁海县| 宝清县| 阿拉善盟| 泰顺县| 安西县| 天水市| 沙湾县| 蛟河市| 石屏县| 永丰县| 怀柔区| 团风县| 建昌县| 阳新县| 尚志市| 克拉玛依市| 视频| 来安县| 宜州市| 库尔勒市| 循化| 莱阳市| 静安区| 文成县| 都昌县| 新昌县| 罗田县| 蕉岭县| 濮阳市| 镇远县| 信阳市| 大宁县|