2016-09-16 23 views
1

在Eclipse IDE中,我有一個Java方法有很多空的參數的在Eclipse中,如何知道哪個參數是Java方法上的遊標?

src.myCrazyFunction(year, name, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); 

我想打電話給城市參數「NY」的功能。 通過使用的Javadoc提示的,我都數不過來參數,直到「字符串城市」,然後:

src.myFunction(year, name, null, null, null, null, null, null, null, null, null, null, 'NY', null, null, null, null, null, null, null, null, null, null, null); 

計數參數它每次我都用這個方法真的很無聊。

我可以知道光標所在的參數名嗎? CTRL + SPACE將用於所有參數...

+3

你應該真的重構該方法,以便它沒有太多的參數。 – puhlen

+0

@puhlen更好的同情那個被稱爲人類理性午夜的enteprrise項目。 –

+2

當按下CTRL +空格時,eclipse會以** bold **爲參數顯示參數。像這樣:http://imgur.com/a/vZTxh,(當移動光標時,光標下的參數變爲粗體) – nos

回答

1

第一件事:如果真的是這樣,你應該改變這種方法,它是瘋了。其次,我不知道你的意思,但在Eclipse中,當你輸入src.時,它會顯示所有可用的方法,點擊你的方法,代碼將以參數名稱作爲參數生成(你可以改變它) 。例如,如果輸入"someString".indexOf,並且選擇一種方法,它將生成"someString".indexOf(ch, fromIndex)(這些不是變量或任何內容,這些參數名稱是indexOf方法聲明中指定的參數名稱,如果不更改,它們將發出編譯時錯誤)。你可以看到你的參數名稱,所以你可以快速地將特定的參數改爲NY,你仍然必須自己編寫空值。我希望我能正確理解你。

+1

我同意這種方法是瘋了,但有時發展設計是由其他人決定。 問題是我必須檢查與這樣的功能的代碼,並且他們之前被寫。所以,我到達280行的代碼,我看到一個具有20個參數的函數。我想知道在參數列表中哪個參數是'NY' – user721730

1

如在comment說明通過@nos,按壓在Eclipse ctrl+space將彈出一個工具提示,突出(在粗體),其中光標是,如由@nos提供的圖像示出在參數:
enter image description here

但是,這仍然需要IDE支持,並且使用(您必須定位光標並觸發它來使用它),因此您應該考慮其他方法。

沒有方法應該採用24個參數,但是如果您絕對必須,那麼您應該評論所有不明顯的參數值,例如yearname可能是解釋不夠,但像值null0false42true等不傳達意思,所以你應該評論他們:

src.myFunction(year, 
       name, 
       /*address1*/null, 
       /*address2*/null, 
       /*city*/null, 
       /*state*/"NY", 
       /*zipcode*/null); 

這樣一個漫不經心的觀察者會知道究竟是什麼意思。

另一種方法是將所有參數值包裝在POJO中並使用構建器模式。

src.myFunction(new MyPojo() 
       .setYear(year) 
       .setName(name) 
       .setState("NY")); 
+0

這段代碼是寫的,我必須檢查它。 我喜歡評論參數和定義POJO的想法,但代碼是寫的,所以我必須評論這種類型的所有行或定義POJO。 如果之前已經寫過函數調用,那麼Eclipse中的CTRL + SPACE不適用於光標爲 – user721730

+0

的參數。CTRL + SPACE對已寫入的調用(例如,將光標放在任何'null'值之前,按下CTRL + SPACE,然後選擇該方法(如果存在過載,請確保選擇正確的方法)。 – Andreas

+0

感謝Andreas,但它顯示了所有參數,但我想知道光標在哪個參數中。 – user721730

相關問題