我知道一个类的名儿,比如:"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) });