java 板


LINE

※ 引述《tas72732002 (蔥頭)》之銘言: : 因為最近在看反射, 看到了動態載入的部分, 想請問一下各位 : 靜態載入, 代表編譯時期其就確定了"可能"載入的class, 一般使用new呼叫稱做靜態載入 : 動態載入, 代表執行時才載入指定的class, 一般透過Class.forName(類別名稱)來進行動態載入 : 不知以上的定義是否有錯誤? : 此外, 如果已經確定了可能使用的類別, 那還需要動態載入嗎? : 如程式中有三種情況, 依照不同情況執行, : if ( args[0] == "aMethod") { : aMethod demo = new aMethod(); : } else if(args[0] == "bMethod") { : bMethod demo = new bMethod(); : } else if(args[0] == "cMethod") { : cMethod demo = new bMethod(); : } : 這樣我還需要使用動態載入的方法嗎? : 之前看到使用動態載入的如JDBC的使用, : 所以我的了解是, 如果不確定要產生的物件是什麼, 可以使用動態載入, : 但上述情況已經確認會有三種情況, 那還需要使用動態載入嗎? 這情況蠻常見的呦。 拿 JDBC 來說好了,API 制定者最初在當 JDBC interfaces 時, 並不知道「未來」有哪些人會去實作 Driver interface。 現在某間公司開發出了一個 「別管 NoSQL 了,你聽過 RMDBS 資料庫嗎?」的 Driver, 而使用者覺得他很好用,想用這個新型態的 DB 來當作儲存資料的主 DB 於是使用者,用了某個很好用的 db access layer 的 library 或是 framework,讓使用者可以指定 jdbc url、driverClass,當然還有帳號密碼。 那麼這個超好用的 db access layer 的 library 或 framework 就會使用使用者填好的 driverClass 並叫 classloader 載入它: Driver driver = Class.forName(" 「別管 NoSQL 了,你聽過 RMDBS 資料庫嗎?」 ") 這麼一來,使用者就可以在 JDBC 這個抽象的介面下, 使用這種新型態的 DB 所以,你在想這問題時,應該沒有想過有這麼多角色, 在不同的時空下,為 JDBC 介面制定與後續的實作分別付出了不同的努力 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.238.120
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1433249487.A.339.html ※ 編輯: qrtt1 (36.231.238.120), 06/02/2015 20:51:58 ※ 編輯: qrtt1 (36.231.238.120), 06/02/2015 20:53:21 ※ 編輯: qrtt1 (36.231.238.120), 06/02/2015 20:54:42
1F:推 tas72732002: 了解, 我名詞上好像定義錯誤, 載入分成 06/03 08:30
2F:→ tas72732002: 預先載入和依需求載入 06/03 08:30
3F:→ tas72732002: 需求載入又分顯式和隱式 06/03 08:31
4F:→ tas72732002: 隱式就是透過new, 顯式則使用如Class.forName 06/03 08:32
5F:→ qrtt1: 不需要這麼多名詞啊,只要觀察一下它的行為跟運用情境 06/03 09:30
6F:→ qrtt1: 去理解一下這麼做的理由。硬要落個名詞的話,我大概會說 06/03 09:30
7F:→ qrtt1: 是不是在「編譯期」就決定關係,還是在「執行期」才知道 06/03 09:31
8F:推 LaPass: 專有名詞我都聽不懂...... 可是我都用過 OAO 06/03 09:34
9F:→ qrtt1: 我也是剛剛才知道這麼多新名詞 (汗 06/03 09:36
10F:→ Killercat: 其實自己改寫一下classloader就能解決很多問題啊.... 06/03 10:28
11F:→ Killercat: 不用讓使用者知道顯式隱式,自己inherit一個classloade 06/03 10:29
12F:→ Killercat: r 把這些東西藏起來就好 XD 06/03 10:29
13F:推 tas72732002: 了解 06/03 10:31







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP