如何提取一个java源文件的所有方法?

问题描述

想根据已有的项目代码生成代码库,这样大家需要使用哪一功能的方法就可以先到库中查找,提高代码复用和查找工具方法的速度。不知道有没有写过类似工具的,敬请指点!

解决方案

解决方案二:
最好是静态分析,能提取方法名,方法参数,方法注释以及内部注释、方法体。
解决方案三:
通过java的反射机制可以实现。具体做法可参考
解决方案四:
反射啊,先通过Class。ForName获取类,然后进而获取这个类的所有方法,包括私有的都可以获取到。反射的具体用法随便百度一大堆,看5分钟全搞定当然,能够获取方法到也可以执行,也就是说用这种方式类的私有方法也可以调用。
解决方案五:
试试Doxgen吧
解决方案六:
反射:Methodmethod=类.getClass().getDeclaredMethod("方法名",Object.class)method.invoke(Objectobj,Object...args)要是得到方法体的话应该是正则表达式与栈运算的综合运用,用正则匹配方法名格式,确定那是一个方法,然后用栈来处理大括号的开与闭。最好两者结合使用吧
解决方案七:
引用4楼Android_iPhone的回复:

试试Doxgen吧

这个比较靠谱,我研究一下。
解决方案八:
引用6楼testcs_dn的回复:

Quote: 引用4楼Android_iPhone的回复:
试试Doxgen吧

这个比较靠谱,我研究一下。

官网http://www.stack.nl/~dimitri/doxygen/download.html

时间: 2024-12-03 10:35:59

如何提取一个java源文件的所有方法?的相关文章

java-怎么获取一个JAVA类中各个方法的代码块

问题描述 怎么获取一个JAVA类中各个方法的代码块 特殊需求:获取一个JAVA类中各个方法的代码块来查找方法中是否包含某个关键字,现在通过发射只能拿到方法的属性和注释,有没有API或者其他方法,求告知,3Q 没金币了..对不起大家 PS:获取本地源代码的,不是运行时的class 解决方案 myeclipse中调试调用带有静态代码块的类时出现java.lang.NoClassDefFoundError的处理方法在DWR中实现直接获取一个JAVA类的返回值的两种方法java代码获取当前类类名.方法名

Java 库的建立方法及其实例

作者 ariesram 电子邮件地址 ariesram@linuxaid.com.cn, 或 ariesram@may10.ca 本文及本人所有文章均收集在bambi.may10.ca/~ariesram/articles/中. 本文授权给www.linuxaid.com.cn. 正文: 任何一种面向对象语言都有它的库.任何一种面向对象的语言也都离不开库的支持.用我们熟悉的 面向对象语言为例子,C++有STL,Java有API函数,具体到开发工具,Visual C++提供了MFC, Borlan

一个java类方法提取器

很少需要直接使用反射工具:之所以在语言中提供它们,仅仅是为了支持其他Java特性,比如对象序列化(第10章介绍).Java Beans以及RMI(本章后面介绍).但是,我们许多时候仍然需要动态提取与一个类有关的资料.其中特别有用的工具便是一个类方法提取器.正如前面指出的那样,若检视类定义源码或者联机文档,只能看到在那个类定义中被定义或覆盖的方法,基础类那里还有大量资料拿不到.幸运的是,"反射"做到了这一点,可用它写一个简单的工具,令其自动展示整个接口.下面便是具体的程序:   //:

数据库-我想写一个java的方法,是关于驾校管理系统时间的问题。

问题描述 我想写一个java的方法,是关于驾校管理系统时间的问题. 要求是考四个科目,如果考试及格,本次考试和下次考试时间间隔10天.如果不及格,本次考试和下次考试时间间隔20天.我想用这个方法返回还应该间隔多少天传入参数:a为数据库提取到里的日期b为s_ID(可忽略,是数据库里学员的编号),c为现在的日期. 解决方案 直接用 addDays(10)得到截止日期,然后相减就可以了.

为什么java源文件中有两个类编译后只产生一个类文件

问题描述 classdemoA{publicstaticvoidmain(String[]args){demoad=newdemoa();d.getmoney();}voidgetmoney(){System.out.println("package123123123");}}classdemoa{voidgetmoney(){System.out.println("package1111");}}为什么java源文件中有两个类编译后只产生一个类文件demoA,且运

Myeclipse中没有main方法怎么运行一个.java文件?

问题描述 Myeclipse中没有main方法怎么运行一个.java文件? **平时测试一些代码,都是建立一个普通的.java文件,然后在main方法里面写测试代码的,今天看网上的教学视频,人家没有main方法,只有一个public void testAdd() 方法,居然也是一样点击上面绿色三角的Run按钮,就可以运行这个testAdd()方法里的测试代码了,我也一样操作就报错了,如下两图分别是代码和报错信息,请问是不是要做一些设置才可以这样执行呢?没有main方法的 .java类怎么可以执行

计算一个Java对象占用字节数的方法_java

本文实例讲述了如何计算(或者说,估算)一个Java对象占用的内存数量的方法.分享给大家供大家参考.具体分析如下: 通常,我们谈论的堆内存使用的前提是以"一般情况"为背景的.不包括下面两种情形:   某些情况下,JVM根本就没有把Object放入堆中.例如:原则上讲,一个小的thread-local对象存在于栈中,而不是在堆中. 被Object占用内存的大小依赖于Object的当前状态.例如:Object的同步锁是否生效,或者,Object是否正在被回收. 我们先来看看在堆中单个的Obj

一个Java 8中简单Lambda表达式程序

原文链接 作者:   Mohamed Sanaulla  译者: 李璟(jlee381344197@gmail.com) 我尝试过把Lambda表达式融入到我的代码中,下面的代码例子是此次尝试的结果.对于那些完全不知道Lambda表达式的Java程序员,我强烈建议在继续阅读之前,浏览一下这篇文章. Ok,现在你已经熟悉Lambda表达式了(在阅读过推荐的Lambda入门文章之后),那我们现在开始学习一个我认为很好的Lambda表达式的例子. 考虑一下这种场景:某些操作在执行之前需要做预处理,执行

第一个JAVA程序

前面几篇博文介绍了JAVA的特点以及开发工具集,从这篇开始,我们真正的学习JAVA的语法等知识.本篇将介绍如何使用记事本编写我们的第一个JAVA程序并通过控制台编译运行. 第一步: 新建文本文档,编辑内容如下所示: /** * 我的第一个Java程序 */ public class HelloWorld { /** * 程序入口方法 */ public static void main(String[] args) { //在控制台输出Hello World! System.out.printl