?我知道一個類的名兒,比如:"com.common.MyClass"但是在我自己的類中不能用這個來定義他的一個實例,因為這個類的名兒可能會變化,請看下面: ?
? class ? A{ ?
? ? ? ? ? // ? com.common.MyClass ? obj; ? 不能這樣定義 ?
? ? ? ? ? Object ? obj ? = ? Class.forName("com.common.MyClass").newInstance(); ?
? ? ? ? ? // ? 上面一句,生成一個自定義類的實例,但是我怎樣才能把obj強轉成com.common.MyClass這個 ?
? ? ? ? ? // ? 類型呢???或者說怎么樣直接把obj定義成com.common.MyClass的類型???(動態的來定義) ?
? ? ? ? ? // ? 請高手們指教啊!!! ?
? }
好像沒有辦法,如果是要調用MyClass的函數的話還是有辦法的 ?
? 比如: ?
? obj所屬的類有toLog方法,toLog(String ? str,Integer ? i),可以用下面的代碼調用這個函數 ?
? Object ? obj ? = ? Class.forName("com.common.MyClass").newInstance(); ?
? Method ? logMethod ? = ? obj.getClass().getMethod("toLog",new ? Class[] ? { ? String.class, ? Integer.class ? }); ?
? Object ? logobj ? = ? logMethod.invoke(obj, ? new ? Object[] ? { ? "something",new ? Integer(7) ? });??
? class ? A{ ?
? ? ? ? ? // ? com.common.MyClass ? obj; ? 不能這樣定義 ?
? ? ? ? ? Object ? obj ? = ? Class.forName("com.common.MyClass").newInstance(); ?
? ? ? ? ? // ? 上面一句,生成一個自定義類的實例,但是我怎樣才能把obj強轉成com.common.MyClass這個 ?
? ? ? ? ? // ? 類型呢???或者說怎么樣直接把obj定義成com.common.MyClass的類型???(動態的來定義) ?
? ? ? ? ? // ? 請高手們指教啊!!! ?
? }
好像沒有辦法,如果是要調用MyClass的函數的話還是有辦法的 ?
? 比如: ?
? obj所屬的類有toLog方法,toLog(String ? str,Integer ? i),可以用下面的代碼調用這個函數 ?
? Object ? obj ? = ? Class.forName("com.common.MyClass").newInstance(); ?
? Method ? logMethod ? = ? obj.getClass().getMethod("toLog",new ? Class[] ? { ? String.class, ? Integer.class ? }); ?
? Object ? logobj ? = ? logMethod.invoke(obj, ? new ? Object[] ? { ? "something",new ? Integer(7) ? });??