コマンドラインから複数の引数を渡す必要があるプロジェクトに取り組んでいます-
以下は私が持っているユースケースです-
コマンドラインから、少なくとも4つのパラメーター、、、、
noOfThreads
を渡すのでnoOfTasks
、これらの4つstartRange
をtableName1
渡す場合は、変数に格納する必要があります。テーブル名については、文字列リストに追加する必要があります。他のコードで使用できるようにします。次に、上記のように4つではなく5つのパラメーターを渡すことができます。したがって、5つのパラメーターは、、、、、およびに
noOfThreads
なります。だからここに余分があります。したがって、これら5つのものを渡す場合は、変数に格納する必要があります。ここでは、2つのテーブルとして渡すので、これら2つのテーブルを文字列リストに格納します。noOfTasks
startRange
tableName1
tableName2
tableName2
tableName1
tableName2
第三に、上記のように5つではなく6つのパラメーターを渡すことができます。したがって、 6つのパラメーターは、、、、、、および
noOfThreads
になります。だからここに余分があります。したがって、これらの6つのものを渡す場合は、変数に格納する必要があります。ここでは、を3つのテーブルとして渡すので、これらの3つのテーブルを文字列リストに再度格納します。noOfTasks
startRange
tableName1
tableName2
tableName3
tableName3
tableName1
tableName2
tableName3
したがって、上記のシナリオでは、以下のコードがあります。以下に説明するように、コードに多くの繰り返しがあるため、現在は非常に醜いように見えます。もっときれいにする方法はありますか?
以下は私のコードです-
private static List<String> databaseNames = new ArrayList<String>();
private static int noOfThreads;
private static int noOfTasks;
private static int startRange;
private static String tableName1;
private static String tableName2;
private static String tableName3;
public static void main(String[] args) {
if (args.length > 0 && args.length < 5) {
noOfThreads = Integer.parseInt(args[0]);
noOfTasks = Integer.parseInt(args[1]);
startRange = Integer.parseInt(args[2]);
tableName1 = args[3];
databaseNames.add(tableName1);
} else if (args.length > 0 && args.length < 6) {
noOfThreads = Integer.parseInt(args[0]);
noOfTasks = Integer.parseInt(args[1]);
startRange = Integer.parseInt(args[2]);
tableName1 = args[3];
tableName2 = args[4];
databaseNames.add(tableName1);
databaseNames.add(tableName2);
} else {
noOfThreads = Integer.parseInt(args[0]);
noOfTasks = Integer.parseInt(args[1]);
startRange = Integer.parseInt(args[2]);
tableName1 = args[3];
tableName2 = args[4];
tableName3 = args[5];
databaseNames.add(tableName1);
databaseNames.add(tableName2);
databaseNames.add(tableName3);
}
}