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

溫馨提示×

溫馨提示×

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

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

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

铅山县| 勐海县| 合肥市| 洞口县| 祁东县| 阳泉市| 繁昌县| 高陵县| 商水县| 黑龙江省| 五寨县| 黑水县| 特克斯县| 盈江县| 诏安县| 宁河县| 平潭县| 丰都县| 眉山市| 若羌县| 皮山县| 微博| 静安区| 鹰潭市| 五大连池市| 高安市| 长葛市| 犍为县| 仙桃市| 绥棱县| 苗栗市| 桂平市| 古田县| 田阳县| 锦州市| 三亚市| 马龙县| 花莲县| 老河口市| 旅游| 宜章县|