非深入探寻Java反射机制 (Constructor)

来源:互联网 发布:指纹考勤机软件 编辑:程序博客网 时间:2024/05/19 02:02

使用Java Reflection机制,我们可以在运行时探寻一个类的构造函数并且生成该类的实例。这些是通过 java.lang.reflect.Constructor 实现的。


Obtaining Constructor Objects


如下方法可以获得一个类的所有public构造函数

Class myClass = Class.forName("A");Constructor[] constructors = myClass.getConstructors();

如果知道了构造函数的参数类型,那么就可以直接查询该public  constructor

A.class文件

package tao.xiao.action;public class A implements IT1 {public A(String s) {}public A(double x, String y, int[] z) {}public A(int a) {}}

HelloJava.class文件的main部分

Class myClass = Class.forName("tao.xiao.action.A");Constructor constructor = myClass.getConstructor(new Class[] {String.class});System.out.println(constructor);constructor = myClass.getConstructor(new Class[] {double.class, String.class, int[].class});System.out.println(constructor);constructor = myClass.getConstructor(new Class[] {int.class});System.out.println(constructor);

结果为

public tao.xiao.action.A(java.lang.String)public tao.xiao.action.A(double,java.lang.String,int[])public tao.xiao.action.A(int)



下一章:非深入探寻Java反射机制(Fields)