Re: [問題] 動態讀取class

看板java作者 (我是CQD,不是cqd)時間17年前 (2008/11/09 20:13), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《jacky951 (藍憶)》之銘言: : 小弟我最近在寫專題,為了之後學弟妹們的維護以及更新容易。 : 所以有一個想法,就是當我需要新的功能 : 只需要把如A.class檔放在JAVA的資料夾,接著去資料庫增加class的名稱"A" : 而不需要去程式裡面多一行 A a = new A(); 如果你只會用到default constructor,不需要傳參數,那會像下面這樣 ==================================================================== String className = "idv.cqd.homeworld.MyClassOfHiigaran"; MyClass mc = (MyClass) Class.forName(className).newInstance(); ==================================================================== 如果你需要傳參數給constructor,例如說一個int跟一個float 那就會變成這樣: ==================================================================== Class[] paraTypeAry = new Class[]{Integer.TYPE,Float.TYPE}; Object[] paraAry = new Object[]{new Integer(123), new Float(1.23f)}; String className = "idv.cqd.homeworld.MyClassOfKushan"; Constructor c = Class.forName(className).getConstructor(paraTypeAry); MyClass a = (MyClass) c.newInstance(paraAry); ==================================================================== - 不過我情感上討厭Class Wrapper,不知道有沒有辦法直接扔原生資料型態進去? -- 這閃電拳能射出雷射光,威力每平方公分一萬億瓦特 威力無比,拳到之處,攻無不克 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.112.160 ※ 編輯: GALINE 來自: 114.47.112.160 (11/09 20:14)

11/09 21:20, , 1F
11/09 21:20, 1F

11/10 01:09, , 2F
new Object[]{123, 1.23f} 頂多這樣吧XD
11/10 01:09, 2F

11/10 01:17, , 3F
看錯抱歉囧 請忽略
11/10 01:17, 3F

11/10 08:56, , 4F
感謝,已解決
11/10 08:56, 4F
文章代碼(AID): #195jFZAZ (java)
討論串 (同標題文章)
文章代碼(AID): #195jFZAZ (java)