Я прочитал java-файл, используя FileReader
, который содержит некоторый метод. Как я могу прочитать область метода (область метода внутри), чтобы найти повторяющуюся переменную?Проверить дублируемую переменную в области методов Java
Например, это Java-файл, который я прочитал:
public double[] copyArray(double[] data) {
int _nn = data.length;
double[] _tmp = new double[_nn];
System.arraycopy(data, 0, _tmp, 0, _nn);
int _nn;
_nn = tmp;
return _tmp;
}
Как знать метод сферы ?, я имею в виду между {и}, если сфера была найдена, поиск дубликатов переменной, таких как, например выше (int _nn) дублируется.
[дополнение] Я пробовал использовать парсер java, тогда это успех. Затем я должен отправить результаты, используя список, но только последний метод в списке. Что случилось с моим кодом?
Это MethodVisitor:
private static class MethodVisitor extends VoidVisitorAdapter {
private List<String> list = new ArrayList<String>();
@Override
public void visit(MethodDeclaration n, Object file) {
list.add(n.getName());
}
public List<String> getList() {
return list;
}
}
Тогда это метод вызвать MethodVisitor:
private MethodVisitor mv;
public void doIt(File file) throws Exception {
CompilationUnit cu;
try {
// parse the file
cu = JavaParser.parse(file);
} finally {
//file.close();
}
// visit and print the methods names
mv = new MethodVisitor();
mv.visit(cu, file);
List<String> list = mv.getList();
for(String item:list){
System.out.println(item);
}
}
использовать стек для отслеживания '{ 'и'} ' – Ramanlfc
используется анализатор Java или компилятор, такие как компилятор затмений, который предоставит обширную информацию об ошибках и предупреждения (например, скрытие поля). – Andreas
Скомпилируйте код. Javac не позволит вам объявлять повторяющиеся переменные. –