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原创文章,未经本站允许不得转载。