我正在做一个项目,我需要从命令行传递多个参数-
以下是我的用例-
从命令行,我将传递至少四个参数
noOfThreads
- ,和noOfTasks
,所以如果我传递这四个东西,那么我需要将它们存储在一个变量中,对于任何表名 - 我需要将它添加到字符串列表中这样我就可以在我的其他代码中使用它们。startRange
tableName1
其次,我可以传递五个参数而不是像上面那样传递四个 - 所以五个参数可以是-
noOfThreads
、noOfTasks
、startRange
和。所以这里是额外的。因此,如果我要传递这五个东西,那么我需要将它们存储在一个变量中,在这里我将作为两个表传递,所以我会将这两个表存储在一个字符串列表中。tableName1
tableName2
tableName2
tableName1
tableName2
第三,我可以传递六个参数而不是像上面那样传递五个 - 所以六个参数可以是-
noOfThreads
、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);
}
}