当前位置: MXJAVA > JAVA开发 > 文章正文

java反射(三)

发表于 2008-10-12 | 阅读 173 views

  之前我们学习了利用 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 方法即可。

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网 关键字: ,
喜欢MXJAVA的文章,那就通过 RSS Feed 功能订阅阅读吧!

我要评论

*

* 绝不会泄露



返回首页 | 关于我们 | 联系我们 | 广告合作 | 友情链接 | 版权声明