0

ユースケースは次のとおりです。

Invoker クラス (main メソッドあり)

public class Invoker {
   public static void main(String[] args) {
          String class_file="Batch_Status";
      }
}

呼び出されるクラス (クラス名と同じメソッド名で、たとえばこの場合は Batch_Status)

import java.util.*;

public class Batch_Status {

    public static void Batch_Status(String args) {

     ......
     ......Code Goes Here
     ......   

    }
}

問題は、class_file test = new class_file(); などの文字列 class_file の値を使用して、Invoker クラスで test などのオブジェクトを定義できないことです。

上記は単なるスニペットです。私の製品コードでは、String 変数の値は異なり、値ごとに異なるクラス ファイルになります (クラス ファイルの名前は、String 変数の値の名前と同じになります)。

提案してください。

よろしく

4

2 に答える 2

0

ありがとうマイケル、

実際、ブレーンストーミングを行っているときに、同じことを行ったところ、希望どおりに機能しました。これで、同じ文字列変数から派生したメソッドも呼び出すことができます。以下は私が試したコードです:

import java.lang.reflect.*;

import java.util.logging.*;
public class Invoker {
    public static void main(String[] args){
    try {
            String str ="Batch_Status";
            Class t = Class.forName(str);
            t.getMethods()[0].invoke(t,str);
        } catch (ClassNotFoundException | IllegalAccessException | InvocationTargetException ex) {
            Logger.getLogger(Invoker.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

そして、あなたの返信を確認すると、かなり似ているようです。ありがとう、本当に感謝しています。

よろしく

于 2013-05-15T09:12:48.447 に答える