如何从普通类(java.lang.class<;?>;)对象获取javaclass(org.apache.bcel.classfile.javaclass)

如何从普通类(java.lang.class<;?>;)对象获取javaclass(org.apache.bcel.classfile.javaclass),java,bcel,Java,Bcel,我有一个.class文件,它可以被类加载到类对象(`javalang`)中。我需要将class对象转换为BCEL中间Java类(org.apache.BCEL.classfile.JavaClass)对象。我该怎么做?简单的回答是你不能,但可能有另一种方法来解决你的问题 BCEL需要从类文件读入类,不能从类实例生成JavaClass。这是因为BCEL需要字节码,而不仅仅是类元数据(类实例中的元数据)。无法使用标准JVM指令从类实例获取字节码。相反,BCEL从类文件解析它 也就是说,如果您的类表示

我有一个.class文件,它可以被类加载到类对象(`javalang`)中。我需要将class对象转换为BCEL中间Java类(
org.apache.BCEL.classfile.JavaClass
)对象。我该怎么做?

简单的回答是你不能,但可能有另一种方法来解决你的问题

BCEL需要从类文件读入类,不能从类实例生成JavaClass。这是因为BCEL需要字节码,而不仅仅是类元数据(类实例中的元数据)。无法使用标准JVM指令从类实例获取字节码。相反,BCEL从类文件解析它


也就是说,如果您的类表示磁盘上某个地方的类文件(在jar中或只是一个.Class文件中),那么您通常可以从类实例访问该类文件,尽管有些间接。这个问题可以让您开始()

以下代码有帮助:-

public void get(){

Class<?> javaClass1 = null;
javaClass1 = ucl.loadClass("com.sample.Customer");
org.apache.bcel.classfile.JavaClass javaClazz1=org.apache.bcel.Repository.lookupClass(javaClass1);
}
public void get(){
类javaClass1=null;
javaClass1=ucl.loadClass(“com.sample.Customer”);
org.apache.bcel.classfile.JavaClass javaClazz1=org.apache.bcel.Repository.lookupClass(javaClass1);
}

欢迎使用堆栈溢出!我编辑以改进您的文章格式。然而,还有一些额外的问题。我们需要先看看你自己解决这个问题的尝试。如果您已经开始编写代码,我们将只为您指出正确的方向,但我们很少直接为您提供代码。发布您的相关代码以及收到的任何错误消息。查看Java文档和搜索引擎。如果其他人在这些资源中找到了答案,您将得到一个“RTD”或“LMGTFY”的答复和大量的反对票。