我想創建一些基於Java代碼(而不是字節碼)的反向egineered設計文檔,而不是編寫我自己的解釋器,使用什麼工具和API來遍歷Java代碼,使用Java代碼?獲取關於Java源代碼元數據的Java API
反射是在字節碼上,並且僅限於方法級別,我想「objectize」也是方法代碼。
Java文檔被忽視代碼本身,只根據意見,自動UML sequnces過於嚴格
例如像這樣的API(原諒我的官方編程語言結構方面的無知):
JavaCodeDom jcd = new JavaCodeDom(new File(pathToJavaSource), CompilerEnum.Java16)
List <ClassSrc> classes = jcd.getClasses();
ClassSrc cls = classes.get(0);
Map<MethodSignatureSrc,MethodSrc> methods = cls.getMethodsMap();
MethodSrc main = mothds.get(new MethodSignatureSrc(Modifiers.Public, Modifiers.Static, ReturnTypes.Void, "main", new MethodParams(String[].class))
List<StatementSrc> statements = main.getStatements();
for(StatementSrc statement : statements){
if(statement.getType()==StatementTypes.Assignment()){
AssignmentStatementSrc assignment = (AssignmentStatementSrc)statement;
Identifier src = assignment.getAssigneeVariable();
ExpressinoSrc = assignment.getAssignmentValue();
}
}
List<AnnotationsSrc> annotations = cls.getAnnotations();
謝謝,現在我只需要知道如何使用它;)看到我的後續問題在這裏:http://stackoverflow.com/questions/5373199/examples-tutorials-for-usage-of-javax-lang-model-or-antlr-javaparser-to-get-inf – 2011-03-21 03:00:15
我會看看我的Doclet,看它是否處於待發布狀態。 ..但不是現在,我應該幾個小時前已經睡覺了。 – 2011-03-21 03:06:18