黑马程序员技术交流社区
标题:
利用反射使用拼凑方式打印一个类中的全部构造方法
[打印本页]
作者:
王峰峰
时间:
2014-4-1 22:26
标题:
利用反射使用拼凑方式打印一个类中的全部构造方法
测试类,取这个类中的方法:
package stu.wff.test ;
public class Person {
private String name ;
private int age ;
public Person() {}
public Person(String name, int age) {
this.setName(name) ;
this.setAge(age) ;
}
public void setName(String name) {
this.name = name ;
}
public void setAge(int age) {
this.age = age ;
}
public String getName() {
return this.name ;
}
public int getAge() {
return this.age ;
}
}
复制代码
操作类,打印所有的构造方法:
package stu.wff.test1 ;
import java.lang.reflect.Constructor ;
import java.lang.reflect.Modifier ;
public class GetAllConstructor {
public static void main(String[] args) {
Class<?> c = null ; //声明Class对象
try{
c = Class.forName("stu.wff.test.Person") ; //实例化Class对象
}catch(ClassNotFoundException e) {
e.printStackTrace() ;
}
Constructor<?>[] cons = c.getConstructors() ; //取得全部的构造方法
for(Constructor con:cons) {
System.out.print("构造方法:") ;
int mo = con.getModifiers() ;
System.out.print(Modifier.toString(mo) + " ") ; //打印修饰符
System.out.print(con.getName()) ; //打印名称
System.out.print("(") ;
Class<?>[] p = con.getParameterTypes() ; //取得所有参数类型
for(int i=0; i<p.length; i++) {
System.out.print(p[i].getName() + " arg" + i) ;
if(i<p.length-1) { //
System.out.print(", ") ;
}
}
System.out.println(")") ;
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2