2016-08-05 7 views
2

Wenn ich Java schreibe, muss ich oft eine Methodensignatur umdefinieren, indem ich ein Objekt durch den Rückgabewert seiner Elementfunktion ersetze. Zum Beispiel:Effiziente Möglichkeit, ein Methodenargument zu seiner Elementfunktion umzuformen?

Ich habe ein Verfahren ursprünglich wie folgt geschrieben:

main() { 
    foo(user); 
} 

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

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

Nach einer Weile merkte ich, dass es nur direkt im Benutzername passieren kann:

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

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

Frage: Gibt es in IntelliJ idea (2016.2.1) einen effizienten Weg, ein solches Refactoring durchzuführen?

Antwort

4

Setzen Sie den Cursor auf String userName = oder user.getName(); (es wird ein anderes Ergebnis liefern) und Refactor | Extract | Parameter (Abkürzung Ctrl + Alt + P)

+0

Ja es funktioniert drücken. Was passiert, wenn ich user.getName() innerhalb der Methode mehrfach verwende? Wenn ich das obige mache, wird nur einer von ihnen extrahiert. Kann ich sie alle zusammen extrahieren? – modeller

+0

Ja, wenn Sie "user.getName();' – Meo

Verwandte Themen