反射机制详解(二)

2014-11-24 11:07:28 · 作者: · 浏览: 1
ut.println(str2);
[c-sharp]
Constructor constractor1=String.class.getConstructor(StringBuffer.class);
String str2=(String)constractor1.newInstance(new StringBuffer("abc"));//两个地方都要StringBuffer newInstance方法返回Object;
System.out.println(str2);
Class类也有一个newInstance方法也是创建一个实例对象;
Field类代表某个类中的一个成员变量;
取得公有的:
[c-sharp]
ReflectPoint rp=new ReflectPoint(3, 5);
Field fieldy=rp.getClass().getField("y");//fieldy不代表具体的值;面是类上的,要用它去取某个对象上对应的值;
System.out.println(fieldy.get(rp));//在 rp对象上去取值;
[c-sharp]
ReflectPoint rp=new ReflectPoint(3, 5);
Field fieldy=rp.getClass().getField("y");//fieldy不代表具体的值;面是类上的,要用它去取某个对象上对应的值;
System.out.println(fieldy.get(rp));//在 rp对象上去取值;
取得私有的:
[c-sharp]
ReflectPoint rp=new ReflectPoint(3, 5);
Field fieldx=rp.getClass().getDeclaredField("x");//fieldy不代表具体的值;面是类上的,要用它去取某个对象上对应的值;
fieldx.setAccessible(true);//暴力反射;
System.out.println(fieldx.get(rp));//在 rp对象上去取值;
[c-sharp]
ReflectPoint rp=new ReflectPoint(3, 5);
Field fieldx=rp.getClass().getDeclaredField("x");//fieldy不代表具体的值;面是类上的,要用它去取某个对象上对应的值;
fieldx.setAccessible(true);//暴力反射;
System.out.println(fieldx.get(rp));//在 rp对象上去取值;