java文件解析器,Java类文件解析器

I have to create a java parser which should give the follwing outputs;

Class name –

Method Name –

Parameter count of that method –

Return count of that method –

Number of override methods –

Number of new methods –

Number of descends –

Polymorphism factor –

I have to use several test cases & retrive outputs. I have given the followin ClassFile.java code. What I have to do is modify the code to get above outputs. Help me if any one knows how to do this.

----------------------------------------------------------------

-----------------------------------------------------------------

-----------------------------------------------------------------ClassFile.java

import java.io.*;

/**

* Parses and stores a Java .class file. Parsing is currently incomplete.

*

* @author David Cooper

*/

public class ClassFile

{

private String filename;

private long magic;

private int minorVersion;

private int majorVersion;

private ConstantPool constantPool;

//...

/**

* Parses a class file an constructs a ClassFile object. At present, this

* only parses the header and constant pool.

*/

public ClassFile(String filename) throws ClassFileParserException,

IOException

{

DataInputStream dis =

new DataInputStream(new FileInputStream(filename));

this.filename = filename;

magic = (long)dis.readUnsignedShort() << 16 | dis.readUnsignedShort();

minorVersion = dis.readUnsignedShort();

majorVersion = dis.readUnsignedShort();

constantPool = new ConstantPool(dis);

//Parse the rest of the class file

//...

//THIS WHERE I SHOULD PUT THE CODE TO GET THOSE OUTPUTS

}

/** Returns the contents of the class file as a formatted String. */

public String toString()

{

return String.format(

"Filename: %s\n" +

"Magic: 0x%08x\n" +

"Class file format version: %d.%d\n\n" +

"Constant pool:\n\n%s",

filename, magic, majorVersion, minorVersion, constantPool);

}

}

解决方案

You may have a look at ANTLR[^] , it is a powerful tool for such tasks.

See here[^] for the definition of class files.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值