执行指定方法

来源:互联网 发布:美工不错的网站 编辑:程序博客网 时间:2024/05/18 19:38

1:

package Test1;

 

publicclass T {

    static{

       System.out.println("T类已经被加载");

    }

    publicvoid sayHello(){

       System.out.println("T:你好");

    }

}

 

package Test1;

 

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

 

publicclass Test {

    publicstaticvoid main(String[] args) {

       String classPath="Test1.T"//类路径和类名

       try {

           Class c=Class.forName(classPath); //将指定类加载到内存中      

           Object o=c.newInstance();   //创建对象 

           Method[] ms=c.getMethods();  //获得该类全部方法,和从继承父类的方法

           for(Method m:ms){

              //执行sayHello方法

              if(m.getName().equals("sayHello")){ 

                  m.invoke(o);  //执行这个方法

              }

           }

       } catch (ClassNotFoundException e) {

           e.printStackTrace();

       } catch (InstantiationException e) {

           e.printStackTrace();

       } catch (IllegalAccessException e) {

           e.printStackTrace();

       } catch (IllegalArgumentException e) {

           e.printStackTrace();

       } catch (InvocationTargetException e) {

           e.printStackTrace();

       }

    }

}

 

输出:

T类已经被加载

T:你好