[英]Get Package Explorer to respect definition ordering in Java source file
[英]Get the package of a Java source file
我的目標是找到Java源文件的軟件包(作為字符串),以純文本形式提供,並且尚未在文件夾中排序。
我不能只在文件中找到關鍵字package
的第一個實例,因為它可能出現在注釋中。 所以我在考慮兩種選擇:
package
關鍵字時,請停止掃描並報告結果。 兩種方法之間的另一個區別是,當手動掃描時,可以確定不再出現package
關鍵字時可以停止掃描,從而節省了一些時間...而且我不確定我可以對正則表達式執行類似的操作。 另一方面,“何時不再顯示”的決定不一定很簡單 ,盡管我可以對此進行一些啟發。
我想聽聽有關此問題的任何意見,並歡迎使用正則表達式提供任何幫助。 我的解決方案也是用Java編寫的。
編輯:對於那些建議實際解析文件的人-絕對是一個可行的選擇,謝謝,但是對於我來說,僅解析包的整個文件對於我來說有點過頭了。 如果沒有更簡單的選擇,我會做的。
我通過使用Java解析器解決了這個問題。 對我來說, javaparser是最合適的。
CompilationUnit cu = JavaParser.parse( file );
String packageName = cu.getPackage().getName().toString();
您可以使用實際的Java源解析器,例如javaparser 。 它提供了正確解析的Java文件,而無需重新發明Java解析器或使用窮人解析器(正則表達式)。
我看到的唯一缺點是,也許您希望在找到包后立即停止解析,並避免解析文件的其余部分。 您可以通過多種方式(有些怪異)來實現此目的,但是我建議您在考慮這一點之前先評估整個文件的性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.