案例一 获取类的构造方法 成员变量 成员方法
package reflection;
import java.lang.reflect.*;
/**
* 统一形式解析类的构造方法,成员变量,成员方法
* @author lenovo
*/
public class demo2 {
int m;
public demo2 (){}
public demo2 (int m ) {
}
private void func1(){
}
public void func2(){
}
public static void main(String[] args) throws Exception {
//加载并初始化制定的类demo2
Class classInfo = Class.forName("reflection.demo2");//代码加载类名为demo2的类
//获得类的构造参数
System.out.println("类demo2构造函数如下所示");
Constructor cons[] = classInfo.getConstructors();
for(int i = 0 ; i < cons.length ; i++){
System.out.println(cons[i].toString());
}
//获得类的所有变量
System.out.println();
System.out.println("类demo变量如下所示");
Field fields[] = classInfo.getDeclaredFields();
for(int i = 0 ; i < fields.length ; i++){
System.out.println(fields[i].toString());
}
//获得类的所有变量
System.out.println();
System.out.println("类demo变量如下所示");
Method methods[] = classInfo.getDeclaredMethods();
for(int i = 0 ; i < methods.length ; i++){
System.out.println(methods[i].toString());
}
}
}
结果:
类demo2构造函数如下所示
public reflection.demo2()
public reflection.demo2(int)
类demo变量如下所示
int reflection.demo2.m
类demo变量如下所示
public static void reflection.demo2.main(java.lang.String[]) throws java.lang.Exception
private void reflection.demo2.func1()
public void reflection.demo2.func2()