2016-08-05 24 views
2

在編寫Java時,我經常需要通過用成員函數的返回值替換對象來重構方法簽名。例如:重構方法參數到其成員函數的有效方法?

我有一個方法最初是這樣寫的:

main() { 
    foo(user); 
} 

private void foo(User user) { 
    String userName = user.getName(); 
} 

class User { 
String name; 
// getter and setter 
} 

一段時間後,我意識到,我可以通過直接在用戶名:

main() { 
    foo(user.getName()); 
} 

private void foo(String name) { 
    String userName = name; 
} 

問題:在intelliJ的想法(2016.2.1)中,是否有任何有效的方法來做這種重構?

回答

4

放在String userName =user.getName();插入符號(它會提供不同的結果),然後按Refactor | Extract | Parameter(快捷鍵Ctrl + Alt + P

+0

是其工作正常。如果我在該方法內有多個user.getName()用法,該怎麼辦?如果我這樣做,只有其中一個被提取。我可以一起提取它們嗎? – modeller

+0

是的,如果你在'user.getName();' – Meo

相關問題