Java 如何获得课程<&燃气轮机;不诉诸字符串的文件实例的实例
形势 包含“.class”文件的目录,根据其类路径位于相应的子目录中 欲望 为每个“.Class”文件获取一个类实例,而无需诉诸字符串操作来获取每个文件的“完全限定类名” 研究 我见过很多从字符串中获取类实例的方法 我想做的是完全避免使用字符串,只需执行以下操作:Java 如何获得课程<&燃气轮机;不诉诸字符串的文件实例的实例,java,Java,形势 包含“.class”文件的目录,根据其类路径位于相应的子目录中 欲望 为每个“.Class”文件获取一个类实例,而无需诉诸字符串操作来获取每个文件的“完全限定类名” 研究 我见过很多从字符串中获取类实例的方法 我想做的是完全避免使用字符串,只需执行以下操作: /** * Foo Description Here * * @parameter file A File instance referring to a '.class' file. */ public Class<?
/**
* Foo Description Here
*
* @parameter file A File instance referring to a '.class' file.
*/
public Class<?> Foo(File file) {
...
return someClassLoader.loadClass(file);
}
/**
*这里是Foo描述
*
*@parameter file引用“.class”文件的文件实例。
*/
公共类Foo(文件){
...
返回someClassLoader.loadClass(文件);
}
“file”参数已引用“.class”文件。我已经知道我可以从'file'参数中选择路径,并得到一个完全限定的类名。如果可以的话,我想避免那些乱七八糟的字符串
我已经看到了以下内容:
ClassPool cp = ClassPool.getDefault();
InputStream ins = an input stream for reading a class file;
CtClass cc = cp.makeClass(ins);
然后转换为具有以下内容的类:
Class clazz = cc.toClass();
我不清楚对字符串的厌恶是什么。如果它能工作,为什么要避免呢?我想这是因为在“.class”文件上已经有了一个句柄似乎很愚蠢,只需要经历一些把戏,比如从开头剥掉类路径目录,“.class”从结尾剥掉,然后用“.”替换所有的“/”以得到一个完全限定的类路径。这是一个额外的工作,让你的手上的东西,你已经有了一个直接的参考。我希望有一个类加载器已经接受了“文件”实例,但我没有看到它。酷!我会检查一下,然后再给你回复。乍一看,这太过分了,但它应该可以完成这项工作。如果你不能使用常规的类装入器(这要求你知道类名),你需要引入一些大人物。它确实可以完成这项工作,但团队领导否决了它。无论如何,我都要做字符串操作。谢谢你的帮助!