Javaでクラス名からインスタンス化する

クラスを追加したら勝手に読み込んで使えるようにしたいとき用です。

Execute1, Execute2・・・という形式でファイルを配置した場合以下のように呼び出すことができます。
ExecuteはインターフェースかAbstractを継承している必要があります。
この場合「AbstractExecute」を継承しているとします。

  public void doExecute(int version) throws Exception {
    String classPrefix = "com.sample.Execute";
    String className = classPrefix + String.valueOf(version);
    Class<?> cls = Class.forName(className);
    if (null != cls) {
      AbstractExecute execute =
        (AbstractExecute) cls.getConstructor({引数のclass}.class).newInstance(
          {引数});
      execute.doSomeThing();
    }
  }