当前位置:首页 > 开发 > 编程语言 > Java > 正文

java反射机制简单实例

发表于: 2015-04-08   作者:永夜-极光   来源:转载   浏览:
摘要: 1.问题: 如果遇到这样的情况,怎么解决 遍历一个数组,每当匹配到一个参数XXX,都要使用相应的c.setXXX()方法,如果参数一多,人工敲代码肯定很麻烦,你会怎么办? for(String nodename:ThirdNode) { if(c.getNodeName().equals("title")) x.setTitle((c.getText

1.问题:

如果遇到这样的情况,怎么解决

遍历一个数组,每当匹配到一个参数XXX,都要使用相应的c.setXXX()方法,如果参数一多,人工敲代码肯定很麻烦,你会怎么办?

for(String nodename:ThirdNode)
					
{
 if(c.getNodeName().equals("title"))  x.setTitle((c.getTextContent()));   

 if(c.getNodeName().equals("price"))  x.setPrice((c.getTextContent()));   
 
if(c.getNodeName().equals("author"))  x.setAuthor((c.getTextContent()));               

		
}

 

2.解决方法:反射

以price属性为例:

2.1.得到属性名price,就是nodename

2.2得到方法名setPrice,将price拆分成p 和rice,将p变成大写P 然后P和rice得到Price,再用StringBuilder加上前缀set,最终得到属性名setPrice

2.3调用对应对象c的setPrice方法()

 

代码如下,测试通过.

for(String nodename:ThirdNode) 


      if(c.getNodeName().equals(nodename))  //nodename就是要匹配的属性,可能有很多个
      {
        String s1=nodename.substring(0, 1);     //先得到nodename属性的第一个字符,目的是变成大写
        String s2=nodename.substring(1);         //得到后半部分子串
        StringBuilder str=new StringBuilder("");  //创建StringBuilder对象
        str=str.append("set").append(s1.toUpperCase()).append(s2);//set+s1+s2得到方法名,注意变大写
        String string=str.toString();                      //结果是setxxx,目的是得到对应的方法名,执行该方法
 
        Method[] a=x.getClass().getMethods();   //得到对象x的所有方法,因为x中有setXXX()方法

        for(Method method:a)                             //在所有方法中找到匹配的setXXX()方法
        {
         if(method.getName().equals(string))
        method.invoke(x,c.getTextContent());       //执行x对象的method方法,参数是c.getTextContent() 

        //这行代码类似于x.setXXX(c.getTextContent())     

      }
      }
     }

java反射机制简单实例

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
一. 创建一个简单的java类如下: package cn.zq; public class SomeClass { /** * 转换成小写 **/ p
Java反射机制浅析图+应用实例 ——转载请注明出处:coder-pig 本节引言: 其实很久之前就想归纳一下Ja
推荐安卓开发神器(里面有各种UI特效和android代码库实例) 一、反射的概念及在Java中的类反射   
转载地址:http://www.cnblogs.com/crazypebble/archive/2011/04/13/2014582.html 【原】Java反射机
转载地址:http://www.cnblogs.com/crazypebble/archive/2011/04/13/2014582.html 【原】Java反射机
java反射详解 本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的
花了几天时间,研究了一下Java的反射机制。在这里总结一下这几天学习的成果,一来分享自己的学习过
Java 反射是 Java 语言的一个很重要的特征。 它允许运行中的 Java 程序对自身进行检查,并能直接操
Java 反射机制 反射机制简介 反射机制应用示例 简单的Ioc实现 代理模式 Java动态代理 简单的Aop实现
首先要求大家对Java泛型知识有所了解,因为程序代码中大量使用了泛型相关知识。 动态语言与反射 “
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号