作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
情况
充满“.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/
我是一名优秀的程序员,十分优秀!