【发布时间】:2019-04-30 06:19:27
【问题描述】:
我需要在 java 项目中获取所有类的名称和一些其他信息。 读取 .java 文件中的所有文本,并使用 Regex 表达式获取:
- 类:名称、修饰符、属性、方法
- 类的属性:名称、修饰符、类型
- 方法:名称、修饰符、返回类型
这里是一个项目示例:
public abstract class Shape {
int numberOfSides;
protected abstract double calculateArea();
public final int getNumberOfSides() {
return numberOfSides;
}
}
public class Circle extends Shape{
int radius;
public Circle(int radius) {
this.radius = radius;
}
@Override
protected double calculateArea() {
// TODO Auto-generated method stub
return Math.PI*radius*radius;
}
}
public class Square extends Shape{
int sideLength;
Square() {
numberOfSides = 4;
}
public void setSideLengt(int sideL) {
sideLength = sideL;
}
@Override
protected double calculateArea() {
// TODO Auto-generated method stub
return this.sideLength*this.sideLength;
}
}
我使用了这个正则表达式:"class\\s*(?<className>[a-zA-Z][a-zA-Z\\d_\\$]*)" 来获取类名。
但是获取其他信息非常困难。你能帮帮我吗?
【问题讨论】:
-
和 .getClass() 对你来说还不够吗?
-
不是答案,但如果还没有可以为您执行此操作的 API,我会吃掉这台笔记本电脑。
-
尝试 Enterprise Architect 导入您的代码。或者自己写一个Java编译器。
-
使用 Java 解析器 - 作为示例,请参阅我的开源项目 SimpleGraph wiki.bitplan.com/index.php/SimpleGraph-Java 的 Java 模块和测试用例 github.com/BITPlan/com.bitplan.simplegraph/blob/master/…
标签: java regex class expression uml