当前位置: 首页 > news >正文

专业微网站建设网站开发实施经费预算

专业微网站建设,网站开发实施经费预算,如何让wordpress id连续,wordpress站点收录好我们知道,Spring中大量使用了反射机制#xff0c;那么究竟是什么地方使用了呢#xff1f;就从源头说起吧。 一 反射源头Class类 对类的概念我们已经非常熟悉了。比如可以有Student这个类#xff0c;Person这个类。但是我们要知道#xff0c;有一个叫Class的类#xff0c;… 我们知道,Spring中大量使用了反射机制那么究竟是什么地方使用了呢就从源头说起吧。   一  反射源头Class类 对类的概念我们已经非常熟悉了。比如可以有Student这个类Person这个类。但是我们要知道有一个叫Class的类它是反射的源头。   正常方式通过完整的类名—通过new实例化—取得实例化对象 反射方式实例化对象—getClass()方法—通过完整的类名   一个简单的例子 package cn.classes; public class OneClass { } package cn.test; import cn.classes.OneClass; public class Test {     public static void main(String[] args) {         OneClass c new OneClass();         System.out.println(c.getClass().getName());   } } 输出结果cn.classes.OneClass 我们需要使用反射就要获得Class这个类有三种方法 package cn.classes; public class OneClass { } import cn.classes.OneClass; public class Test { public static void main(String[] args) {      Class? c1 null;      Class? c2 null;      Class? c3 null;      try      {          // 方法一forName(重要)          c1 Class.forName(cn.classes.OneClass);    }      catch (ClassNotFoundException e)      {          e.printStackTrace();     }      // 方法二      c2 new OneClass().getClass();        // 方法三      c3 OneClass.class;      System.out.println(c1.getName());      System.out.println(c2.getName());      System.out.println(c3.getName());    } } 输出结果cn.classes.OneClass     二 利用Class这个类实例化类 ①无参构造 package cn.classes; public class Person {     private String name;     private int age;      .............省略getter,setter..............     Override     public String toString()     {           return Person [name name , age age ];     } } package cn.test; import cn.classes.Person; public class Test {     // 这样做必须在类中有一个空构造方法     public static void main(String[] args)     {               Class? c null;                try                {                       c Class.forName(cn.classes.Person);                      Person p (Person)c.newInstance();                      p.setName(xy);                       p.setAge(20);                       System.out.println(p);                }                catch (Exception e)               {                       e.printStackTrace();                }        } }   ②有参构造 package cn.classes; public class Person {     private String name;     private int age;      public Person(Stringname,int age){                  this.name name;                  this.age age;     }     .............省略getter,setter..............         Override     public String toString()     {           return Person [name name , age age ];     } } package cn.test; import java.lang.reflect.Constructor; import cn.classes.Person; public class Test {     // 如果没有一个空构造方法     public static void main(String[] args)     {           Class? c null;           try           {                   c Class.forName(cn.classes.Person);                  Constructor? con c.getConstructors(String.class,int.class);                  Person p (Person)con.newInstance(xy,20);                  System.out.println(p);           }           catch (Exception e)          {                 e.printStackTrace();          }       } }   三 Spring中使用Class实例化 bean.xml bean idid classcom.xy.Student /   Spring将采用的代码创建代码Java实例Class c Class.forName(com.xy.Student); Object bean c.newInstance();     四 Class类调用方法 package cn.classes; public class Person {     public void add()     {            System.out.println(add);     }     public void addWithParameters(String name, int age)     {             System.out.println(add带参数方法 name age);     } } package cn.test; import java.lang.reflect.Method; public class Test {     public static void main(String[] args)     {              Class? c1 null;              try              {                    c1 Class.forName(cn.classes.Person);                    // 不带参数的方法调用                    Method m c1.getMethod(add);                   m.invoke(c1.newInstance());                      // 带参数方法调用                    Method m1 c1.getMethod(addWithParameters, String.class, int.class);                   m1.invoke(c1.newInstance(), xy, 22);            }             catch (Exception e)             {                    e.printStackTrace();             }     } }     五 Class获得gettersetter方法 Class这个类可以获得类的很多信息比如获得该类的接口构造函数属性方法等。我们来看如何获得gettersetter方法。 package cn.classes; public class Person {     private String name;     private int age;     省略getter,setter    }   package cn.test; import java.lang.reflect.Method; public class Test {     public static void main(String[] args)     {            Class? c1 null;            Object obj null;            try            {                      c1 Class.forName(cn.classes.Person);                      obj c1.newInstance();                      setter(obj, name, xy, String.class);                      setter(obj, age, 20, int.class);                      getter(obj, name);                      getter(obj, age);            }            catch (Exception e)             {                     e.printStackTrace();             }    }    /**     * param obj要操作的对象     * param att要操作的属性     * param value要设置的属性内容     * param type要设置的属性类型     */     public static void setter(Object obj, String att, Object value, Class? type)     {          try          {             // 得到setter方法           Method m obj.getClass().getMethod(set initStr(att), type);           m.invoke(obj, value);          }          catch (Exception e)          {           e.printStackTrace();          }    }    /**     * param obj要操作的对象     * param att要操作的属性     */    public static void getter(Object obj, String att)    {         try         {                // 得到getter方法                Method m obj.getClass().getMethod(get initStr(att));                System.out.println(m.invoke(obj));         }        catch (Exception e)        {                e.printStackTrace();        }    }    public static String initStr(String oldStr)    {          String newStr oldStr.substring(0, 1).toUpperCase() oldStr.substring(1);          return newStr;    } }   六 Spring调用getter,setter方法 我们以setter注入例子 bean.xml bean idid classcom.xy.Student     property namestuName valuexy //bean Spring将采用的代码创建代码Java实例并注入值Class c Class.forName(com.xy.Student); Object bean c.newInstance(); 通过一些操作获取对stuName对应的setter方法名String setname set StuName; Method method c.getMehod(setname,String.Class); method.invoke(bean,xy); 这样就完成了最基本的注入操作。当然Spring还可以通过构造函数进行注入。这样就参考第二点有参构造的Class的使用。 Class还可以访问Annotation这样就Spring使用注解的时候可以完成注入的功能。   七 总结 反射的内容还是很多的需要系统的学习。当然Spring也是。 本文转自IT徐胖子的专栏博客51CTO博客原文链接http://blog.51cto.com/woshixy/1060263如需转载请自行联系原作者 woshixuye111
http://www.yutouwan.com/news/410586/

相关文章:

  • 旅游网站技术流程图如何修改wordpress的登录
  • 站长工具怎么用软文营销网
  • 龙岩市住房和城乡建设局网站中国seo排行榜
  • 黄骅做网站价格织梦html5手机网站模板
  • 青岛网站设计建设大型企业网站源码
  • 佛山网站建设价格整站优化要多少钱
  • 义乌高端网站设计品牌火车头 wordpress 发布
  • 海东企业网站建设如何做网站营销
  • 网站开发重要性wordpress国外模板安装
  • 吉林省建设 安全 网站WordPress主题启用出现错误
  • 拼多多网站建设方案免费ftp 网站
  • 网站技术培训网站开发用技术
  • 北京城乡住房建设部网站深圳 网站设计公司排名
  • 网站建设咋做wordpress搭建门户
  • 企业网站建设流程概述免展网站后台注册
  • 0基础自学做网站赣州市微语网络科技有限公司
  • 泉州网页网站制作大型定制网站最贵建设多少钱
  • 中学生网站源码网页访问紧急升级
  • wordpress 评论点赞免费seo网站
  • 用阿里云自己建设网站宝塔搭建网站
  • 郑州动漫设计公司招聘上海牛巨微seo优化
  • 广州建设网站的公司简介网站使用网络图片做素材 侵权
  • 如何 网站收录wordpress小程序获取页面
  • 上海做淘宝网站美术学院网站建设
  • 建设局网站买卖合同设备网站开发
  • 网站开发工程师职业道德深圳网站建设外包
  • wordpress双站怎么样提升自己的学历
  • 网站制作素材2015做哪些网站能致富
  • 穹拓网站建设十大成功网络营销案例
  • seo网站页面优化零基础学wordpress pdf下载