gpt4 book ai didi

java - 当我在运行时只能在字符串变量中找到它的名称时,我该如何使用它?

转载 作者:行者123 更新时间:2023-11-30 07:32:02 27 4
gpt4 key购买 nike

当我只将 X 类的名称存储在字符串中时,有没有办法从另一个类(在同一个项目但不同的包中)运行 X 类的方法 - 假设我不知道程序启动之前存在哪些类,并且我扫描 .java 文件的目录,然后将这些名称存储到字符串中。

例如,我有 A 类,它具有函数“main”和“method1”——我的程序将 A 类的名称从其文件中获取到 String 中。然后我希望能够运行 main 或 method1 函数,但我不确定如何操纵 s 到达那里......我试过的一件事是这个,但我只是得到异常错误并且不知道它是否在正确的轨道,有什么建议吗?:

//gets the filename from JFileChooser method_fc
File file = method_fc.getSelectedFile();

try {
Class c = Class.forName(file.getName());
Method method = c.getDeclaredMethod("main");
Object instance = c.newInstance ();
Object result = method.invoke(instance);
} catch (Exception e) {
System.out.println("Cannot access class: "+e.getMessage());
}

最佳答案

您可以这样做,但要考虑到类名不以“.java”或“.class”结尾(您可以将其删除)。

关于java - 当我在运行时只能在字符串变量中找到它的名称时,我该如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870024/

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