Java通过反射获得其他类中的全部构造函数

Java通过反射机制获取获得其他类中的全部构造函数,步骤所用方法如下:

1. forName()   返回给定串名相应的Class对象。

2. getConstructors()  返回当前Class对象表示的类的所有公有构造子对象数组。

import java.lang.reflect.*;
class hello{
    public static void main(String[] args) {
        Class<?> demo=null;
        try{
            demo=Class.forName("Reflect.Person");
        }catch (Exception e) {
            e.printStackTrace();
        }
        Constructor<?>cons[]=demo.getConstructors();
        for (int i = 0; i < cons.length; i++) {
            System.out.println("构造方法:  "+cons[i]);
        }
    }
}

运行结果:

构造方法:  public Reflect.Person()
构造方法:  public Reflect.Person(java.lang.String)

上面的构造函数没有public 或者private这一类的修饰符,下面这个例子我们就来获取修饰符

class hello{
    public static void main(String[] args) {
        Class<?> demo=null;
        try{
            demo=Class.forName("Reflect.Person");
        }catch (Exception e) {
            e.printStackTrace();
        }
        Constructor<?>cons[]=demo.getConstructors();
        for (int i = 0; i < cons.length; i++) {
            Class<?> p[]=cons[i].getParameterTypes();
            System.out.print("构造方法:  ");
            int mo=cons[i].getModifiers();
            System.out.print(Modifier.toString(mo)+" ");
            System.out.print(cons[i].getName());
            System.out.print("(");
            for(int j=0;j<p.length;++j){
                System.out.print(p[j].getName()+" arg"+i);
                if(j<p.length-1){
                    System.out.print(",");
                }
            }
            System.out.println("){}");
        }
    }
}

运行结果:

构造方法:  public Reflect.Person(){}

构造方法:  public Reflect.Person(java.lang.String arg1){}

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。