我有一个任务,我需要编写解析.class文件,并检索喜欢的东西Java程序:在java文件的类文件解析器
1.name
2.implemented接口
3.variables
4.constructors
5.methods
我没有任何ideeas从哪里开始? 例如,我应该使用什么样的数据I/O结构?
我有一个任务,我需要编写解析.class文件,并检索喜欢的东西Java程序:在java文件的类文件解析器
1.name
2.implemented接口
3.variables
4.constructors
5.methods
我没有任何ideeas从哪里开始? 例如,我应该使用什么样的数据I/O结构?
您可以使用Java反射。这里是一个很好的教程 - >
目前已经为类文件中解析出有几个库。 Objectweb ASM是最流行的。
如果你必须从头开始,我建议从JVM specification开始,详细解释了类文件的二进制布局。之后,解析只是一个简单的编程问题。我以前写过一个类文件解析器,并不难。
您不需要任何外部库,只需使用java.lang.Class
即可。写下你的班级名称:
[NameOfMyClass].class.getDeclaredFields();
[NameOfMyClass].class.getDeclaredConstructors();
[NameOfMyClass].class.getDeclaredMethods();
接口和许多其他属性是一样的。
你能详细一点吗? – tudoricc
我看了你刚刚提到的术语,我想我有点理解 – tudoricc
嘿,对不起,我很快就删除了我的评论。我犹豫了,因为你提到一个.class文件,我认为你必须解析字节码。 Java“反射”是一种API,它允许您获取某个类的信息,甚至可以设置该类的受保护字段和方法的可访问性。 – Unihedron