我已尽力使用标题,但这可能不是一个好的措辞方式,因此我将尽力解释问题。对于熟悉 Windows BATCH 的人来说,此代码
set /p var =
goto %var%
将带您进入名称为变量var
中存储的字符串的页面。我需要在 Java 中做同样的事情。是的,我完全意识到使用 if
语句可以满足这个想法,只是它需要更多的代码行。我的方法是这样的:
import java.util.Scanner;
public class blarg {
public static void main(String[] args) throws NullPointerException{
Scanner scan = new Scanner(System.in);
String spell = scan.nextLine();
ClassLoader cl = null;
Class cls = (cl.loadClass(spell)).class;
String name = cls.getName();
cl.loadClass(name);
}
}
我在这里的目标(如果不清楚,因为我不知道它是否可能或者我是否使用正确的代码)是将用户的输入传递给变量spell
。然后,我使用 Class cls = (cl.loadClass(spell)).class
获取与 spell
关联的类,然后获取该类,获取完全限定名称使用String name = cls.getName();
,最后加载该类。
我在 Eclipse 中收到以下错误:
线程“main”java.lang.Error中出现异常: Unresolved 编译问题:标记“class”上的语法错误,需要标识符
那么,有什么方法可以解决该语法错误(通过添加标识符),或者其他人知道有什么方法可以完成我想做的事情吗?如果没有,我绝不反对使用 if
语句,我只是认为如果我能让这项工作成功,我可以让我的生活更轻松。如果您需要更多信息,我会尽力为您提供。
最佳答案
你可以这样做:
Class<?> myclass = Class.forName(spell);
关于java - 尝试从字符串访问类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904679/