java - 尝试从字符串访问类

标签 java

我已尽力使用标题,但这可能不是一个好的措辞方式,因此我将尽力解释问题。对于熟悉 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/

相关文章:

java - 在我的世界 1.8 上使用 forge api 创建生物

java - 无法通过用户输入使用数组排序找到符号

java - 查看加密的数据库数据

java - 在Android后台服务中使用php Webservice

java - 线程安全单例

java - Spring 应用程序上下文加密

java - 如何使用 OpenCV 在同一个 Java 程序中运行多个 haarcascade xml 文件?

java - 当应该使用带有自动注入(inject)字段的方法时,突变没有被终止

java - openFileOutput 中的空指针

java - 使用http读取xml文件