黑马程序员_反射
来源:互联网 发布:淘宝怎么增加自然流量 编辑:程序博客网 时间:2024/06/06 23:56
1.Class类
Person类代表人,它的实例对象就是张三,李四这样一个个具体的人, Java程序中的各个Java类属于同一类事物,描述这类事物
的Java类名就是Class。对比提问:众多的人用一个什么类表示?众多的Java类用一个什么类表示?
2.反射
反射就是把Java类中各种成分映射成相应的Java类。例如,一个Java类中用一个Class类的对象来表示,一个类中的组成部分
成员变量,方法,构造方法,包等信息也用一个个Java类来表示。
表示Java类的Class类显然是要提供一系列的方法,来获取其中的变量,方法,构造方法,修饰符,包等信息,这些信息就是
用相应类的实例对象来表示,它们是Field 、Method、Contructor、package等
一个类中的每个成员都可以用相应的反射API类的一个实例对象来表示,通过调用Class类的方法可以得到这些实例对象后,
得到这些实例对象后有什么用?怎么用?这正是学习和应用反射的要点。
Constructor类代表某个类中的一个构造方法,
要得到某个类所有的构造方法如下所示:
Constructor [ ]>
得到某一个构造方法:
Constructor>
创建是咧对象:
通用方法:String>
反射方式:String>
Field类代表某个类中的一个成员变量
问题:得到Field对象是对应到类上面的成员变量,还是对应到对象上的成员变量?类只有一个,而给类的实例对象有多个
,如果是与对象关联,那关联的是哪个对象呢?所以字段field x 代表的是 x 的定义,而不是具体的 x 变量
如:
ReflectPoint>
Field>
System.out.println(y.get(point));
Field x = Class.forName("cn.itcast.corejava.ReflectPoint").getDeclaredFiled("x");
x.setAccessible(true);
System.out.println(x.get(point));
Method类代表某个类中的一个成员方法
得到类中某一个方法:
Method>
调用方法:通常方法是System.out.println(str.charAt(1));
反射方法是System.out.println(charAt.invoke(str,1));
如果传递给Method对象的invoke()方法的第一个参数为null,这样有什么意义呢.?说明个Method对象对应的是一个静态方法。
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- 黑马程序员_反射
- Leetcode习题:Insertion Sort List
- Java面试题集(71-85)
- android.view.InflateException
- linux下获取本机ip地址,ipv4和ipv6
- sig_atomic_t
- 黑马程序员_反射
- hdu-2546 饭卡 01背包
- 百度地图静态图之坐标转换
- jsp页面不能显示图片问题
- 26 Hints for Agile Software Development
- Filter(四)常用应用2---使浏览器不缓冲动态资源
- boost log库 使用十
- 敏捷开发的实战经验
- 产品项目的九个敏捷开发经验