我需要获取一个Java项目中所有类的名称和一些其他信息。读取所有.java文件中的文本,并使用正则表达式获取:
- 类:名称、修饰符、属性、方法
- 类的属性:名称、修饰符、类型
- 方法:名称、修饰符、返回类型
这里有一个项目示例:
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_\\$]*)"
来获取类名。
但是获取其他信息很困难。你能帮我吗?
.java
文件,那么您可以使用反射。 - Mark