Java的反射机制(1)-反射功能的基本介绍

来源:互联网 发布:ps3模拟器og数据损坏 编辑:程序博客网 时间:2024/06/03 14:19
参考网址:
http://my.oschina.net/u/1407116/blog/209417
http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html

在此之前需了解的背景知识:
Class类:
     Class的实例表示正在运行的类和接口,基本的数据类型(boolean, byte, char, short, int, long, float, double)以及void也比表示Class对象。

Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。(不能直接new出来)

重要方法:
     newInstance():创建此Class对象所表示的类的一个对象并返回。只能使用在默认的构造方法中。一定要自己定义无参的构造函数。
     getName():以String的形式返回此Class对象所表示的实体(类、接口、数组类、基本类型或void)名称。          
     forName():返回与带有给定字符串名的类或接口相关联的Class对象,Class的静态方法。

代码:
//直接将People类赋值Class<?> demo1 = People.class;//调用Class的静态方法forName,返回一个People,即Class的对象Class<?> demo2 = Class.forName("www.baidu.com.People");//通过实例的getClass()方法获取类,赋值给ClassPeople people = new People();Class<?> demo3 = people.getClass();People mPeople = null;mPeople = (People)demo1.newInstance();Class<People> demo4 = People.class;People people2 = null;people2 = demo4.newInstance();

//demo4中应用了泛型。

这边比较乱,画了个图:



反射机制:
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

反射使用:
     Method是反射最基本的一个类。
     getMethod(String name, Class<T>…parameterTypes):返回一个Method对象,它反映此Class对象所表示的类或接口的指定公共成员方法。
     invoke(Object obj, Object… agrs):对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。

代码:
Method method[] = demo4.getMethods();     System.out.println(method[0]);     System.out.println(method[1]);输出: public java.lang.String www.baidu.com.People.getAge()      public void www.baidu.com.People.setAge(java.lang.String)Method myMethod = demo4.getMethod("sayHi");myMethod.invoke(demo4.newInstance());输出:HelloWorld!


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 遇到飞机出故障乘客怎么办 模拟城市5矿产满了怎么办 模拟城市5劳工短缺怎么办 模拟城市5土地价值低怎么办 考上研究生想二战研究生学籍怎么办 小米3屏幕花屏怎么办 狗被城管抓了怎么办 隔壁家的狗扰民怎么办 遛狗碰到碰瓷老太太怎么办 碰到保安碰瓷的人怎么办 碰到碰瓷的车怎么办 商品房楼上邻居违规装修怎么办 遇到不讲道理的邻居怎么办 邻居告我我该怎么办 丈夫判刑十年回来妻子怎么办 有人发色情信息给妻子怎么办 小孩拉蛋花样便怎么办 鸡下的蛋壳是软怎么办 幼升小错过了现场审核怎么办 老人户口迁移到北京医保怎么办 过山洞经常堵耳朵怎么办 门有了一个洞该怎么办 公司要求补税没钱补怎么办 公司补税补不起了怎么办 脚被石头砸肿了怎么办 砸到脚背肿了怎么办 小猫吃完饭抓地怎么办 耳机链接处断了怎么办 表链从表盘断了怎么办 龟头和皮分开了怎么办 微信买票被骗了怎么办 撞车了我的全责怎么办 蒙田包包里面不耐脏怎么办? 摩托车转向灯不会打怎么办 浓硫酸弄到脸上怎么办 钥匙被锁在家里怎么办 有奶宝宝吸不出来怎么办 奶涨宝宝吸不出来怎么办 高铁票未取误点怎么办 飞猪上12306占座失败怎么办? 新生儿肚脐还没有脱落发炎怎么办