编程开发

java反射(三)

08-10-12 | No Comments |

  之前我们学习了利用 Java 的反射机制,在运行期间生成对象和运行方法。相比较而言,今天的内容要简单很多--运行期间运态为 Field 赋值。

  1、在生成对象后,直接访问属性。

  1. import java.lang.reflect.Field; 
  2.  
  3. public class TestField { 
  4.     public String test; 
  5.      
  6.     public static void main(String[] args) { 
  7.         try { 
  8.             Class cls = Class.forName("TestField"); 
  9.             Field f = cls.getField("test"); 
  10.             TestField tf = (TestField)cls.newInstance();
  11.             f.set(tf, "abc"); 
  12.             System.out.println(tf.test); 
  13.         } catch (Exception ex) { 
  14.             System.out.println(ex);  
  15.         } 
  16.     } 

  为了访问 Class TestField 的属性 test,我们需要生成其 Class 对象,利用 Class 的 getField 方法得到 Field 后,只要调用 Field 的 set 方法就可以为其赋值了。一般情况下,对象的属性都会设计为 private 的,这时,上面的程序就会抛出 java.lang.NoSuchFieldException: test 异常。其实,利用反射是可以访问 private 属性的,只要将上面的 getField 改为 getDeclaredField 方法即可。


五冠 Nokia/诺基亚 5230 5230XM 送证书V20版 内有港行 销数千台
1000.0元
批发 雷朋3025镜面反光太阳镜 太阳眼镜 19.9/副 顶级质量
19.9元
促销笔记本电脑 13.3英寸超薄N450无线网卡视频
1999.0元

留下您的脚印


«
»