有沒有辦法在Java中獲得方法的@param註釋?我知道可以通過解析每個java文件輕鬆實現。但是,這似乎是應該已經可以在像JavaCC這樣的工具中使用的東西了。獲取Java中的方法的@param註釋
例子 - 我希望能夠讀取通道和觀察員:
* @param ch the character to be tested
* @param observer the image observer to be notified
有沒有辦法在Java中獲得方法的@param註釋?我知道可以通過解析每個java文件輕鬆實現。但是,這似乎是應該已經可以在像JavaCC這樣的工具中使用的東西了。獲取Java中的方法的@param註釋
例子 - 我希望能夠讀取通道和觀察員:
* @param ch the character to be tested
* @param observer the image observer to be notified
如果您有資源,您可能會考慮使用QDox,它被描述爲一個高速,小尺寸的解析器,用於從源文件中提取完整的JavaDoc @tags的類/接口/方法定義。它被設計爲由活動代碼生成器或文檔工具使用。
示例代碼from documentation:
JavaMethod mth = cls.getMethods()[0];
// Access the JavaDoc comment
String comment = mth.getComment();
// "This method does nothing at all."
// Access a single doclet tag
DocletTag returns = mth.getTagByName("returns");
returns.getName(); // "returns";
returns.getValue(); // "A boolean of whether we care or not."
// Access multiple doclet tags with the same name
DocletTag[] params = mth.getTagsByName("param");
params[0].getValue(); // "Someone's email address."
params[1].getValue(); // "Date of birth."
// Access specific parameters of a doclet tag by index
DocletTag permission = mth.getTagByName("permission");
permission.getParameter[0]; // "administrator"
permission.getParameter[1]; // "full-access"
// Access specific parameters of a doclet tag by name
DocletTag webservice = mth.getTagByName("webservice");
webservice.getNamedParameter("type"); // "rpc"
webservice.getNamedParameter("name"); // "myservice"
你指的是在javadoc註釋的@param? Javac(或者你真的指JavaCC的java編譯器?)忽略它們,因爲這些只是註釋。 雖然你可以使用javadoc工具,但如果內存服務的話,現在即使是現在也可以編寫自己的doclet。
或者你指的是方法註釋?如果在註釋聲明中將保留設置爲運行時,那麼可以在java代碼中檢索這些代碼。
簡短的回答是「不」:評論是在運行時不會訪問,因爲評論是不編譯成.class
文件。
你可以使用各種方法解析源代碼(如果有的話),但這似乎是你的問題的主題。
我測試了QDox,它完成了工作 - 謝謝 – Paligulus