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())

[1] [2] [3] [4] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有