import java.lang.reflect.Constructor;
public class ReflectTest {
public static void main(String[] args)throws Exception {
Constructor constructor1 = String.class.getConstructor(StringBuffer.class);
String str2 = (String)constructor1.newInstance(new StringBuffer("abc"));
System.out.println(constructor1.toString());
}
}
反射到底有什么用???也在网上看了很多相关的问题,但是觉得没有一个能真正理解的。反射就是程序能够自检查自身信息。在程序中可以检查某个类中的方法属性等信息,并且能够动态调用。这样可以写出很灵活的程序。
这句话看到的最多,可是光有文字很难理解具体什么时候用能体现它的价值。就比如说上面的程序,就创建一个字符串对象,用那么费劲吗?既然开始就知道对象是StringBuffer类型,为什么不用String str=new String(new StringBuffer("abc"))呢?那为什么还要用constructor方法特地绕一圈回来在求StringBuffer呢?
|