java動態載入類

2021-08-13 21:26:44 字數 590 閱讀 5710

//new建立物件是靜態載入類,在編譯時刻就需要載入所有的可能用到的類。而通過動態載入類可以解決此問題

class office

if("excel".equals(args[0]))}}

//以上**在編譯時就會報錯,因為找不到word類和excel類以及其各自的 start()方法.

//若存在乙個word類,我們編譯器還是不會通過編譯,因為它會報沒有exce這個類l

class word

}//而現在我們想的是,因為有word類已經存在,當我們傳的引數是word時想讓程式執行下去,輸出相應得內容,顯然採用上面靜態載入類的方式是不可能實現的,這時候就需要採用動態載入類的方式。如下

class officebettercatch(exception e)}}

word類:

class word implements officeable

}excel類:

class excel implements officeable

}//如此以來程式也會變得比較耦合,也很容易擴充套件,如果再有乙個其他的ppt類,就很容易實現了,只要ppt類實現officeable介面,然後重寫其中的方法即可。

JAVA類動態載入的實現

結束 以上所述,想必大家對jvm類載入的原理有了一定的了解,大致也猜到實現的方法了吧。結合上面說到,要jvm重新載入乙個類,一共有3種辦法 我加了一種 1.重新寫乙個新的路徑,更換包名或類名都是可行的方法。2.自己寫乙個類的尋找機制取代systemclassloader中的,再呼叫definecla...

java動態載入

package com.service import com.xx.domaim public inte ce userserviceps com xx.domain是引用的另乙個工程c的domain 此時如果只是載入了b工程的jar 載入b工程的源 public class classloader...

Java反射機制總結學習 動態載入類

首先有如下 public class dynamicloadclass else if b equals args 0 class a class b 上面 可以正常編譯 執行。但是如果此時沒有b類,而且,我們的需求也不需要b類,就只用a類的方法就可以了,這個時候我們就需要main函式的 然後重新編...