假设我有一个文件,其名称是file.txt它包含java中反射方法的脚本。假设其中一些是:
new <id> <class> <arg0> <arg1> … creates a new instance of <class> by using
a constructor that takes the given argument types and stores the result in <id>.
call <id> <method> <arg0> <arg1> … invokes the specified <method> that
takes the given arguments on the instance specified by <id> and prints the answer.
print <id> prints detailed information about the instance specified by <id>. See
below for Object details.
文件中的脚本将作为程序中的字符串被选中。我将如何将其转换为我在上面指定的用于反射的参数。对这一个人视而不见!一些代码帮助的一些描述将被欣赏,因为我是java的新手。
答案 0 :(得分:1)
这首先是解析问题。您需要做的第一件事就是将输入分解为可管理的块。由于您似乎使用空格来分隔组件,这应该是一件相当容易的事情。
由于每行有一个命令,你要做的第一件事就是将它们分成几行,然后再分成基于空格的单独字符串。解析是一个足够大的话题,值得拥有它自己的问题。
然后你会逐行进行,在行的第一个单词上使用if语句来确定应该执行什么命令,然后根据对它们的处理来解析其他单词。
这样的事情:
public void execute(List<String> lines){
for(String line : lines){
// This is a very simple way to perform the splitting.
// You may need to write more code based on your needs.
String[] parts = lines.split(" ");
if(parts[0].equalsIgnoreCase("new")){
String id = parts[1];
String className = parts[2];
// Etc...
} else if(parts[0].equalsIgnoreCase("call")){
String id = parts[1];
String methodName = parts[2];
// Etc...
}
}
}