標準外の質問があります。
MyClass
引数のリストを使用してコマンドラインから実行するクラスがあるとしましょう
[<key> <value>]
お気に入り:
MyClass -key1 arg1 -key2 arg2 -key3 arg3 ... -keyN argN.
したがって、私のクラスは、入力データをフィールドに渡すメソッドに従いました。
public class MyClass{
private static String arg1;
private static String arg2;
private static String arg3;
...
private static String argN;
private static void getArgs(String[] args) {
for(int k=0; k<args.length; k=k+2){
if(args[k].equals("-key1")){
arg1 = args[k+1];
}
else if(args[k].equals("-key2")){
arg2 = args[k+1];
}
else if(args[k].equals("-key3")){
arg3 = args[k+1];
}
...
else if(args[k].equals("-keyN")){
argN = args[k+1];
}
}
}
私は自動化を書いておりMyClass
、それぞれに10〜30のパラメーターがある約30〜40のがあります。
すべてのクラスには同じフィールドと異なるフィールドがあります (50/50)。
メソッドの実装は好きではありませんprivate static void getArgs(String[] args)
。時間の無駄のようです。
Notepad++ で、Reg-ex に基づいて Java コードを生成するスクリプトを作成する必要がありますが、その前に、入力パラメーターを処理するための他のテクノロジ/テクニックを誰かが知っているかどうかを尋ねたいと思います。
[編集]
次のようなリフレクションを使用することを考えました。
for(int k=0; k<args.length; k=k+2){
Field field = classInstance.getClass().getDeclaredField(args[k].substring(1));
field.setAccessible(true);
field.set(classInstance, args[k]);
}
ありがとうございました、