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

溫馨提示×

溫馨提示×

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

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

java類加載器URLClassLoader怎么使用

發布時間:2023-04-08 17:57:10 來源:億速云 閱讀:155 作者:iii 欄目:開發技術

這篇文章主要介紹“java類加載器URLClassLoader怎么使用”,在日常操作中,相信很多人在java類加載器URLClassLoader怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java類加載器URLClassLoader怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

類加載器之URLClassLoader的簡單demo

public class Test {
	public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, IOException {
		URL[] urls = new URL[] {new URL("http://192.168.119.132:8080/images/animal.jar")};
		URLClassLoader classLoader = new URLClassLoader(urls);
		//加載類以后就可以得到 Class 對象了
		Class<?> clazz = classLoader.loadClass("com.learn.animal.Dog");
		classLoader.close();  //加載完類以后就可以刪除了。
		//關閉 classLoader, 否則會造成 資源泄露  Resource leak
		//這里不使用默認的構造器,使用帶參數的構造器 獲取特殊的構造器
		Constructor<?> con = clazz.getDeclaredConstructor(String.class, int.class, int.class);
		//使用構造器創建對象
		Object ob = con.newInstance("小黑",12,50);
		//在調用 Dog 對象的 say 方法,返回對 Dog 對象自己的描述
		Method mtd0 = clazz.getMethod("say", new Class<?>[] {});  
		String dogSay = (String)mtd0.invoke(ob, new Object[] {});  
		System.out.println(dogSay);
		//再使用setter 方法,改變屬性  模擬 Dog 對象,逐漸長大,變胖  哈哈!
		System.out.println("Three years later......");
		Method mtd1 = clazz.getMethod("setAge", int.class);
		mtd1.invoke(ob, 15);
		Method mtd2 = clazz.getMethod("setWeight", int.class);
		mtd2.invoke(ob, 70);
		//注意這些方法是有返回值的!  返回值都是 Object 類型,需要自己強轉類型
		dogSay = (String)mtd0.invoke(ob, new Object[] {});  
		System.out.println(dogSay);
		System.out.println("It's over!");
	}
}

這里的 URL 資源,我用的是虛擬機里面的搭建的簡單的 nginx 服務器,也是看著別人的教程搭建的,很簡陋的一個服務器,哈哈。但是,這里足夠使用了,如果沒有條件,或者想簡單一點,可以使用本地的文件系統。
使用 file:///jar包地址 這個替換就行了。

這里使用的 jar 包也很簡單,但是我直接打成了 jar 包,只有 class 文件了,我反編譯以下,把代碼圖片貼出來吧。
這個反編譯不是全部代碼,但是細節很簡單,只有一個 say() 方法,可以參照下面的運行截圖,補全。

java類加載器URLClassLoader怎么使用

然后是運行截圖,注意我這里這個 -encoding utf-8 是指定使用編碼字符集,因為cmd里面執行代碼,如果有中文可能無法通過編譯。

java類加載器URLClassLoader怎么使用

到此,關于“java類加載器URLClassLoader怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

阳江市| 澄城县| 临西县| 勐海县| 海盐县| 江陵县| 和平县| 奉新县| 郸城县| 井陉县| 柏乡县| 彰化县| 金阳县| 东明县| 柯坪县| 岳阳县| 达日县| 宿州市| 仁布县| 武清区| 荆门市| 湘阴县| 黑山县| 吴忠市| 静安区| 金溪县| 平舆县| 巨野县| 邵武市| 马山县| 司法| 徐州市| 临朐县| 同仁县| 大港区| 栾城县| 渭南市| 抚松县| 镇原县| 定安县| 辽阳县|