2012-07-07 83 views
0

我有時運行的問題是,當我使用Eclipse函數添加/生成接口的方法時,我想實現這些方法的參數名稱只是「過於通用」 。具有不合理名稱的Eclipse生成方法參數

所以,如果它是一個String參數,它就被命名爲paramString,如果它是一個int,那麼它被稱爲paramInt等等 - 而不是被稱爲表達參數的語義的東西。例如,我正在實現javax.portlet.PortletSession接口(JSR 286規範的一部分;我需要一個自定義實現)。

方法進行參數這樣的:

public void setAttribute(String paramString, Object paramObject) 
public void setAttribute(String paramString, Object paramObject, int paramInt) 

我想什麼有是某事像這樣:

public void setAttribute(String key, Object value) 
public void setAttribute(String key, Object value, int scope) 

有時方法產生的作品就是我想要的,有時候,就像這一次,它沒有。我認爲這與我導入持有我想實現的接口的庫的方式有關,但也許有人可以更詳細地解釋行爲?

也許有人可以給出一個具體的例子說明: 我將如何導入JSR 286規範,如何生成獲取我想要的方法?

非常感謝!

+0

所以,這就是我所做的:我下載了JSR 286規範。並將源代碼導入到Eclipse中。然後我引用該源代替包含僅包含類文件的JAR。那就是訣竅 - 不確定是否有其他方式,但似乎您需要來源 - 至少在這裏是這種情況。 – AnNaSF 2012-07-07 08:16:27

+0

有誰知道是否有一種方法來重新生成一堆類的所有方法簽名?否則,我不得不做這個變化手動知道這將是非常惱人的:( – AnNaSF 2012-07-07 08:17:59

回答

1

只需自己重新命名參數即可。我懷疑參數名是根據Eclipse必須處理的信息生成的 - 如果參數名不存在於jar文件中,它就不能提供它。如果有portlet jar文件的調試版本,或者您可以告訴Eclipse JavaDoc的位置,這可能會有所幫助......但最終,它很簡單,只需手動重新命名即可。

就像一個測試,我懷疑,如果你聲明PortletSession類型的變量,然後嘗試用自動完成,像這樣使用它:

PortletSession session = null; // Doesn't matter for this 
session.set <hit ctrl-space here> 

我的猜測是,這不會在自動完成...中包含參數名稱,而在自動執行工作的情況下,它將會。這關係到Eclipse需要處理多少信息。

+0

)說實話,我喜歡我的方式與導入源不僅僅是它handish。 – AnNaSF 2012-07-07 08:45:23

+0

@ user1090608:當然,你可以哪裏更好 - 但我' d視圖將JavaDoc等視爲更具相關性,而不僅僅是自動生成的參數名稱。 – 2012-07-07 08:46:25