请问:如何得到类和方法的分析树? 如果是class文件可以用reflect,源文件就不会了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是啊。如果是class文件就好了。但需求规定是原文件。而且,应该有办法的,比如JBuilder,一边写代码,左边的分析树就一边刷新,它分析的就是源代码嘛。 需要一个Java的Parser,写一个或找一个吧。 这个我没用过,但应该可以的:http://www.antlr.org/ 写源文件分析肯定是不行的了,太复杂,还容易出错。应该能有直接用的,不过我还没找着,找着了告诉你。实在不行,就只有分析class了。先将java文件编译成class。 你可以分析一个jbuilder的包,找到相关类拿来用不就可以了。 有各类的方法的,可以参考java编程思想 用Object的getMethods()方法可以返回一个Method[]数组。Method[i].getName()即得到方法名! antlr = ANother Tool for Language Recognition,是一个Java的Parser生成器,你给它语法,它给你生成Parser,你用这个Parser可以从源文件生成AST。它的主页上提供了Java 1.3的语法文件,拿来用就是了。 你的最终目的是干什么?可不可以用javadoc? 可利用Java的反射机制来实现,非常简单,方便的,呵呵。可参考我写的 “在JavaBean中动态绑定EJB“ 里面的方法。http://www.bhsky.com/program/ejb/index.htm 哦刚才仔细看要求是源文件我写的是分析.class 文件的类和方法其实分析源文件也是一样的呀利用反射机制一样遍历呀 http://developer.java.sun.com/developer/technicalArticles/Parser/SeriesPt3/看看,about antlr,sun公司推荐的 <font size=20>有没有直接的工具</font> 用javadoc不就可以了?然后再分析结果文件,我认为这样最简单. java的多线程问题 Java 中能否递归调用? 哪位大侠能简单说明一下 Math.random() 和 java.util.Random 的区别吗? 关于位组的问题! 用过poi的朋友,请教怎样根据名称获得excel中该cell的具体位置 求助:java的数学计算问题? java中一个24小时运行的类维持一个链表,多个类(线程)使用该链表的问题 小妹妹提问 JAVA中的对象序列化 java图片获取 有谁知道currentTimeMillis是个什么东东? 喜极而泣!我都要哭了!终于不出现error:cannot read HelloWorldApp.java
Method[i].getName()即得到方法名!
可参考我写的 “在JavaBean中动态绑定EJB“ 里面的方法。http://www.bhsky.com/program/ejb/index.htm
刚才仔细看
要求是源文件
我写的是分析.class 文件的类和方法
其实分析源文件也是一样的呀
利用反射机制
一样遍历呀