取得类的全部的方法

来源:互联网 发布:php的错误日志在哪里 编辑:程序博客网 时间:2024/05/17 09:40

通过getMethods()方法取得类的全部的方法

package org.lxh.demo15.classinfodemo ;interface China{// 定义China接口public static final String NATIONAL = "China" ;// 定义全局常量public static final String AUTHOR = "李兴华" ;// 定义全局常量public void sayChina() ;// 无参的,没有返回值的方法public String sayHello(String name,int age) ;// 定义有两个参数的方法,并返回内容}public class Person implements China{private String name ;private int age ;public Person(){// 无参构造}public Person(String name){this.name = name ;// 设置name属性}public Person(String name,int age){this(name) ;this.age = age ;}public void sayChina(){// 覆写方法System.out.println("作者:" + AUTHOR + ",国籍:" + NATIONAL) ;}public String sayHello(String name,int age){return name + ",你好!我今年:" + 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 org.lxh.demo15.classinfodemo ;import java.lang.reflect.Method ;// 导入构造方法的包import java.lang.reflect.Modifier ;// 导入构造方法的包public class GetMethodDemo{public static void main(String args[]){Class<?> c1 = null ;// 声明Class对象try{c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ;// 实例化对象}catch(ClassNotFoundException e){e.printStackTrace() ;}Method m[] = c1.getMethods() ;// 取得全部方法for(int i=0;i<m.length;i++){Class<?> r = m[i].getReturnType() ;// 得到返回值类型Class<?> p[] = m[i].getParameterTypes() ;// 取得全部参数的类型int xx = m[i].getModifiers() ;// 得到修饰符System.out.print(Modifier.toString(xx) + " ") ;// 输出修饰符System.out.print(r + " ") ;System.out.print(m[i].getName()) ;System.out.print("(") ;for(int j=0;j<p.length;j++){System.out.print(p[j].getName() + " " + "arg" + j) ;if(j<p.length-1){System.out.print(",") ;}}Class<?> ex[] = m[i].getExceptionTypes() ;// 取出异常if(ex.length>0){System.out.print(") throws ") ;}else{System.out.print(")") ;}for(int j=0;j<ex.length;j++){System.out.print(ex[j].getName()) ;if(j<p.length-1){System.out.print(",") ;}}System.out.println() ;}}};
运行结果:

public class java.lang.String getName()public void setName(java.lang.String arg0)public void sayChina()public class java.lang.String sayHello(java.lang.String arg0,int arg1)public void setAge(int arg0)public int getAge()public final void wait(long arg0,int arg1) throws java.lang.InterruptedException,public final native void wait(long arg0) throws java.lang.InterruptedExceptionpublic final void wait() throws java.lang.InterruptedExceptionpublic boolean equals(java.lang.Object arg0)public class java.lang.String toString()public native int hashCode()public final native class java.lang.Class getClass()public final native void notify()public final native void notifyAll()


0 0