我最近在看反射,我现在很疑惑,就是我们利用反射可以动态获得一个类的对象,但是这个对象是属于OBject类型的对象,如何把这个对象动态强制转换成相应类型呢?
下面是我写的代码,我的问题在注释中.
public class TestReflect {
public static void main(String args[]) throws Exception{
Object a = Class.forName("A").newInstance();
A tempa = (A) a; //如何动态的将a 这个对象转换为A这个类型?
tempa.print();
}
}class A {
public void print() {
System.out.println("hello,world");
}
}
下面是我写的代码,我的问题在注释中.
public class TestReflect {
public static void main(String args[]) throws Exception{
Object a = Class.forName("A").newInstance();
A tempa = (A) a; //如何动态的将a 这个对象转换为A这个类型?
tempa.print();
}
}class A {
public void print() {
System.out.println("hello,world");
}
}
public static void main(String args[]) throws Exception{
Object a = Class.forName( args[1] ).newInstance();
//?? 那么在这一行如何根据args[1] 中的内容 强制转换对象a ?
}
http://blog.csdn.net/kingfish/archive/2005/03/23/328004.aspx
String datatype = "XX"; //datatype的内容是可能变化的
Object a = Class.forName( datatype ).newInstance();
//?? 那么在这一行如何根据datatype 中的内容 强制转换对象a ?
//因为这时候 datatype 的内容是可以变化的
//那么简单的用 A tempa = (A) a; 是不够的。
}
但是如果你需要,你可以根据它的Class通过反射机制去获得方法来执行又或者最常用的是定义一个Interface来列举需要的方法
也许Java中并不需要这样的功能。