簡體   English   中英

大規模Eclipse AST Java重構

[英]Massive Eclipse AST Java Refactoring

親愛的stackoverflow社區!

我必須重構大量的Java類,並希望將其自動化。 我想使用Java JDT並為此編寫一個eclipse插件。

以下“問題”應解決:

  • 方法不應在其定義中引發泛型異常。 我當時正在考慮刪除Exception throws塊,然后讓eclipse為我自動生成throws聲明。 這可能嗎? 我還沒有找到任何資源。 我已經能夠將所有相關方法用作JDT模型,但是不知道如何刪除throws塊並調用eclipse的自動更正功能。

     // So instead of public int foo() throws Exception { // do some SQL-stuff } // Should be public int foo() throws SQLException, NoResultException { // do some SQL-stuff } 
  • 受保護的字段應重寫為私有字段,並應提供受保護的訪問者。 我認為這是可以自我解釋的,但是如何在項目外部編輯所有引用以獲取吸氣劑? (沒有設置器,如果有的話,我可以手動編輯它們)。

在此先感謝您,對不起我的英語。

如果您不知道如何開始,這里有一個很好的教程,介紹了如何在JDT中使用AST和Java模型: http : //www.vogella.com/tutorials/EclipseJDT/article.html

如果您分幾個步驟進行重構,則可以首先使用自己的插件刪除所有帶有通用異常的throw聲明,而使接觸的源代碼具有編譯錯誤。 然后,您可以在IDE中手動啟動快速修復。 如果您進行了大量更改,則不建議使用此方法。

在API本身中很難找到一個好的入口點,因為您可能想在一個“事務”中進行所有代碼更改。 過去,我嘗試過類似的東西,但總是自己編寫相關部分,盡管閱讀Eclipse代碼確實有很大幫助! 一個好的開始方法是使用“插件間諜”來找到相關的類。 (在Mac上為Shift + Alt + F1或Shift + Option + F1)。 它顯示當前所選內容的信息。

要自己創建throws塊,您可以使用AST中的訪問者模式檢查代碼,並收集所有拋出的異常(如果它們未包含在合適的catch塊中)。

第二個要求可以通過AST直接實現。 您可以查看Eclipse的“封裝字段”重構,了解如何執行此操作(或在可能的情況下使用此功能)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM