前天刚与享了个打印构造方法的,这次在复习的过程中写了这个打所有方法的,与大家分享一下,有什么不好的在地方,请大家多多指教。
一、测试类(这是我自己新建的一个类,当然也可以使用JAVA类库中的类,我看见张老师的里面一般用的是JAVA类库中的类。)
- public class Person {
- private String name ;
- private int age ;
-
- public Person(){}
-
- public Person(String name, int age) {
- super();
- this.setName(name) ;
- this.setAge(age) ;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
-
- public String say() {
- return "我的姓名是:" + this.name + "; 我的年龄是:" + this.age ;
- }
- }
复制代码
这是操作方法:
import java.lang.reflect.Method;
import java.lang.reflect.Modifier ;
public class Test01 {
public static void main(String[] args) throws Exception{
Class<?> c = null ;
try{
c = Class.forName("wff.text1.Person") ;
}catch(Exception e) {
e.printStackTrace() ;
}
//返回Perosn对象中的方法,不包括继承
Method[] methods = c.getMethods() ;
//迭代每一个对象
for(Method method:methods) {
int mo = method.getModifiers() ; //以整数的形式返回方法的修饰符
System.out.print(Modifier.toString(mo) + " ") ; //打印修饰符
Class<?> reType = method.getReturnType() ; //取得方法的返回值类型
System.out.print(reType.getName() + " ") ; //打印类型
System.out.print(method.getName() + " (") ; //打印方法名称
Class<?>[] para = method.getParameterTypes() ; //取得参数类型
//打印方法里面的参数
for(int i=0; i<para.length; i++) {
System.out.print(para.getName() + " arg" + i) ;
if(i<para.length-1) {
System.out.print(", ") ;
}
}
Class<?>[] exc = method.getExceptionTypes() ; //取得异常
if(exc.length>0){
System.out.print(") throws ") ;
for(int i=0; i<exc.length; i++) {
System.out.print(exc.getName());
if(i<exc.length-1) {
System.out.print(", ") ;
}
}
System.out.println() ; //打印完异常进行换行
}else {
System.out.println(")") ;
}
}
}
}
写的不当的地地方,请大家多多指教…… |
|