メソッド名に基づいてメソッドを動的に呼び出す

2493 ワード

主にJava反射メカニズムによって実現される.
例:
public class NewClass {

    private static final NewClass newClass = new NewClass();

    

    public  void doTest(String methodName){

        try {

            newClass.getClass().getMethod(methodName, new Class[]{}).invoke(newClass, new Object[]{});

        } catch (Exception ex) {

            Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);

        }

    }

    

    public void speak(){

        System.out.println("speak");

    }

    

    public void running(){

        System.out.println("running");

    }

    

}
public class Test {

    public static void main(String[] args) {

        NewClass newClass =  new NewClass();

        newClass.doTest("speak");

        newClass.doTest("running");

    }

}

実行結果:
run:

speak

running

  ( : 0  )