老生常談Java動(dòng)態(tài)編譯(必看篇)
一、動(dòng)態(tài)編譯簡(jiǎn)介
new創(chuàng)建對(duì)象是靜態(tài)加載類,在編譯時(shí)刻就需要加載所有可能使用到的類。
一百個(gè)類,有一個(gè)類錯(cuò)了,都無法編譯。
通過動(dòng)態(tài)加載類可以解決該問題
二、代碼實(shí)例
2.1 OfficeBetter.java
main接口
里面通過對(duì)Class類的動(dòng)態(tài)編譯
然后調(diào)用實(shí)例,完成動(dòng)態(tài)編譯
public class OfficeBetter { public static void main(String[] args) throws InstantiationException, IllegalAccessException { try { //動(dòng)態(tài)加載類,在運(yùn)行時(shí)刻加載 Class c =Class.forName(args[0]); //通過類類型,創(chuàng)建該類對(duì)象 OfficeAble oa =(OfficeAble)c.newInstance(); oa.start(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
2.2 OfficeAble.java
一個(gè)接口而以,方便word時(shí),也方便excel是用
public interface OfficeAble { public void start(); }
2.3 Word.java
實(shí)現(xiàn)OfficeAble接口,
動(dòng)態(tài)編譯就在于wold的時(shí)候直接用word類就好,excel的時(shí)候直接用excel就好
原來寫的所有的東西都不需要再重新編譯,只要運(yùn)行新功能就好了
public class Word implements OfficeAble{ public void start() { System.out.println("word....starts..."); } }
以上這篇老生常談Java動(dòng)態(tài)編譯(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java實(shí)現(xiàn)簡(jiǎn)單美女拼圖游戲
這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單美女拼圖游戲的相關(guān)資料,需要的朋友可以參考下2015-03-03Java中消息隊(duì)列任務(wù)的平滑關(guān)閉詳解
對(duì)于消息隊(duì)列的監(jiān)聽,我們一般使用Java寫一個(gè)獨(dú)立的程序,在Linux服務(wù)器上運(yùn)行。程序啟動(dòng)后,通過消息隊(duì)列客戶端接收消息,放入一個(gè)線程池進(jìn)行異步處理,并發(fā)的快速處理。這篇文章主要給大家介紹了關(guān)于Java中消息隊(duì)列任務(wù)的平滑關(guān)閉的相關(guān)資料,需要的朋友可以參考下。2017-11-11關(guān)于Jsoup將相對(duì)路徑轉(zhuǎn)為絕對(duì)路徑的方法
這篇文章主要介紹了關(guān)于Jsoup將相對(duì)路徑轉(zhuǎn)為絕對(duì)路徑的方法,jsoup 是一款Java 的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容,需要的朋友可以參考下2023-04-04詳談java中File類getPath()、getAbsolutePath()、getCanonical的區(qū)別
下面小編就為大家?guī)硪黄斦刯ava中File類getPath()、getAbsolutePath()、getCanonical的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07java 日志的數(shù)據(jù)脫敏的實(shí)現(xiàn)方法
今日給大家介紹一下java 日志的數(shù)據(jù)脫敏的實(shí)現(xiàn)方法,可以更好的保護(hù)數(shù)據(jù)的安全,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01java必懂的冷知識(shí)點(diǎn)之Base64加密與解密
這篇文章主要介紹了java必懂的冷知識(shí)點(diǎn)之Base64加密與解密的相關(guān)資料,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03mybatis-plus分頁查詢的實(shí)現(xiàn)示例
這篇文章主要介紹了mybatis-plus分頁查詢的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Synchronized?和?ReentrantLock?的實(shí)現(xiàn)原理及區(qū)別
這篇文章主要介紹了Synchronized?和?ReentrantLock?的實(shí)現(xiàn)原理及區(qū)別,文章為榮啊主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09