我有非标准问题。
假设我有一个类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];
}
}
}
我编写自动化程序,大约有 30-40 个MyClass
,每个都有 10-30 个参数。
所有类都有相同的字段和不同的字段(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]);
}
谢谢,