java反射机制——解析
java反射机制——解析
1、java反射机制定义
所谓的反射机制就是java语言在运行时拥有一项自观的能力。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备。例如,使用它能获得 Java 类中各成员的名称并显示出来
2、java反射机制的关键类
Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method;
class——类对象,
Constructor——类的构造器对象,
Field——类的属性对象,
Method——类的方法对象。通过这四个对象我们可以粗略的看到一个类的各个组 成部分。
3、java反射机制事例
1)class——类对象用 java.lang.Class 类来描述类和接口等。
[html] view plaincopyprint?
01.package com.centit.reflect;
02.import java.lang.reflect.Method;
03./**
04. * @author zjh
05. *
06. */
07.class Person{
08. private String name;
09. private int age;
10.
11. public String getName() {
12. return name;
13. }
14.
15. public void setName(String name) {
16. this.name = name;
17. }
18.
19. public int getAge() {
20. return age;
21. }
22.
23. public void setAge(int age) {
24. this.age = age;
25. }
26.
27. public Person(String name, int age) {
28. super();
29. this.name = name;
30. this.age = age;
31. }
32.
33. public Person() {
34. super();
35. }
36.
37.}
38.
39.public class DumpMethods {
40.
41. public static void main(String[] args) {
42. try {
43. //定义一个Person实例对象
44. Person man=new Person("测试",30);
45. //获得一个 Class 对象的方法
package com.centit.reflect;
import java.lang.reflect.Method;
/**
* @author zjh
*
*/
class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
}
}
public class DumpMethods {
public static void main(String[] args) {
try {
//定义一个Person实例对象
Person man=new Person("测试",30);
//获得一个 Class 对象的方法[html] view plaincopyprint?
01.Class manClass=man.getClass();
Class manClass=man.getClass();[html] view plaincopyprint?
01.//获得一个 Class 对象的方法
02.Class womanClass=Class.forName("com.centit.reflect.Person");
//获得一个 Class 对象的方法
Class womanClass=Class.forName("com.centit.reflect.Person");[html] view plaincopyprint?
01. //获得一个 Class 对象的方法
02. Class boyClass=Person.class;
03. System.out.println(manClass.getName());
04. System.out.println(womanClass.getName());
05. System.out.println(boyClass.getName());
06. } catch (Throwable e) {
07. System.err.println(e);
08. }
09. }
10.
11.}
12.输出结果:
//获得一个 Class 对象的方法
Class boyClass=Person.class;
System.out.println(manClass.getName())