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;

例子:

 Class c = new String("").getClass();
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()才能找到。

最新文章

  1. Winform中Grid跨行复制一列
  2. maven学习(4)-本地项目打包发布到私有仓库
  3. android 的通知管理
  4. 【模拟】Codeforces 706A Beru-taxi
  5. Linq中的多表左联,详细语句
  6. The Linux device model
  7. FFmpeg 协议初步学习
  8. Quick Cocos2dx Action相关
  9. 浅谈CSS模块化
  10. FPGA学习笔记(一)——初识FPGA
  11. git branch --set-upstream 本地关联远程分支
  12. centos 设置中文
  13. 02 of learning python
  14. iOS 解压Assets.car文件
  15. Java代码中获取Json的key值
  16. 负数字符串经过int处理之后还是负数
  17. 《A_Pancers》第二次作业 基于Android系统的音乐播放系统项目开题报告
  18. LR、HMM、CRF和MaxEnt区别
  19. hdu 5142(数学-进制转换)
  20. Git bare repo with multiple branches

热门文章

  1. poj 3421 X-factor Chains——质因数分解
  2. 怎么让eclipse调试的时候不进入 class文件中去
  3. Python:内置split()方法
  4. 此上下文中不允许异步操作。启动异步操作的页必须将 Async 特性设置为 true,并且异步操作只能在 PreRenderComplete 事件之前的页上启动。
  5. 2017年总结&2018年计划
  6. vue实用难点讲解
  7. Spring配置hibernate读取实体类映射mappingResources,annotatedClasses,packagesToScan
  8. docker 笔记(4) Dockerfile 常用的指令
  9. gridcontrol 添加行号
  10. 从文件中读取yuv和h264数据