gpt4 book ai didi

java - 使用输入字符串生成对象和函数反射

转载 作者:行者123 更新时间:2023-12-01 14:48:07 25 4
gpt4 key购买 nike

假设我有一个文件,其名称为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新手,我将不胜感激一些带有代码帮助的描述。

最佳答案

首先这是一个解析问题。您需要做的第一件事是将输入分解为可管理的 block 。由于您似乎使用空格来分隔组件,因此这应该是一件相当容易的事情。

由于每行有一个命令,因此您要做的第一件事就是将它们分成几行,然后根据空格分成单独的字符串。解析是一个足够大的主题,值得有自己的问题。

然后,您将逐行进行,在该行的第一个单词上使用 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...
}
}
}

关于java - 使用输入字符串生成对象和函数反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15189489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com