gpt4 book ai didi

java - 如何从 File 实例获取 Class 实例而不诉诸字符串

转载 作者:行者123 更新时间:2023-11-30 02:42:03 25 4
gpt4 key购买 nike

情况

充满“.class”文件的目录,根据其类路径位于适当的子目录中。

欲望

为每个“.class”文件获取一个 Class 实例,无需通过字符串操作来为每个文件获取“完全限定的类名”。

研究

我见过很多从字符串获取 Class 实例的方法。

我想做的是完全避免使用字符串,只需执行以下操作:

/**
* Foo Description Here
*
* @parameter file A File instance referring to a '.class' file.
*/
public Class<?> Foo(File file) {
...
return someClassLoader.loadClass(file);
}

“file”参数已引用“.class”文件。我已经知道我可以调整"file"参数的路径,并获得可识别的完全限定类名。如果可以的话,我想避免所有与字符串相关的困惑。

我已经看到以下内容:

这正是我不想做的。我已经看到:

第二个答案很接近,但留下了如何获得最后一步的类的完全限定名称的问题。您仍然必须摆弄字符串,或者只是在定义它们时任意命名它们。

在仔细研究了 JavaDocs、StackOverflow 等之后,我开始想知道是否有任何方法可以做到这一点。

最佳答案

您可以使用Javassist为了这。来自其文档:

ClassPool cp = ClassPool.getDefault();
InputStream ins = an input stream for reading a class file;
CtClass cc = cp.makeClass(ins);

然后转换为类:

Class clazz = cc.toClass();

关于java - 如何从 File 实例获取 Class<?> 实例而不诉诸字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41372407/

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