zoukankan      html  css  js  c++  java
  • java反射机制的粗略理解

    java反射机制:

    涉及的对象:Class, Object, 

       函数:Class类:【forName(String className):static;getClass():public】,Object类:【getClass():public】。

    Class

    Class也是一个对象,但是你不能通过构造函数得到它,它都是由jvm产生的,它通过上面的两个方法得到实例,加上下面3一共三个方式:

    1.通过Object类的getClass()方法。例如:

    Class c1 = new String("").getClass();

    2.通过Class类的静态方法——forName()来实现:

    Class c2 = Class.forName("MyObject");

    3.如果T是一个已定义的类型的话,在java中,它的.class文件名:T.class就代表了与其匹配的Class对象,例如:

    Class c3 = Manager.class;

    Class c4 = int.class;

    Class c5 = Double[].class;

    例子:

    1 Class c = new String("").getClass();
    2 System.out.println(c.getClass());

    这个结果就是

    java.lang.Class

    这里还有一个要注意的地方是:java中要说什么类,必须跟上前面的包名。

    前几天遇到的一个问题:

    return Class.forName("mapPart."+XMLUtil.getClassName()).newInstance();

    就上面这句代码刚开始我写成了:return Class.forName(XMLUtil.getClassName()).newInstance();

    XMLUtil是自己写的一个xml解析类,getClassName()返回大概就是String类型的WTObject之类的,如果这个WTObject在一个包中,你就必须加上包名forName()才能找到。

  • 相关阅读:
    [USACO09Open] Tower of Hay 干草塔
    [HNOI2004]打鼹鼠
    BZOJ1222[HNOI 2001]产品加工
    BZOJ1270[BJWC2008]雷涛的小猫
    NOIP2018出征策
    解析·NOIP·冷门 CLZ最小环
    CCF-NOIP-2018 提高组(复赛) 模拟试题(九)(2018 CSYZ长沙一中)
    [脚本无敌1]图片批量处理(matlab)
    用Matlab解《2013年数据建模比赛》图像碎片拼接题
    火灾检测-fire,fire
  • 原文地址:https://www.cnblogs.com/chaiwentao/p/4388218.html
Copyright © 2011-2022 走看看