2011-01-27 13 views
54

Jeśli moja klasa ma niepusty konstruktor, czy możliwe jest automatyczne uzupełnianie parametrów w wyrażeniu new?Czy IntelliJ może automatycznie uzupełniać parametry konstruktora w wyrażeniu "nowym"?

z Eclipse, jeśli naciśniesz ctrl + przestrzeń gdy kursor znajduje się pomiędzy nawiasem:

MyClass myObject = new MyClass(); 

znajdzie odpowiednie parametry.

--> MyClass myObject = new MyClass(name, value); 

Gdy używam ctrl + SHIFT + spacja po new, Intellij pokazuje mi konstruktorów, ale nie mogę wybrać jeden dla automatycznego zakończenia. Czy brakuje mi opcji?

+0

Czy mógłbyś zreformować swoje pytanie.To jest mylące. Nie wiem, co masz na myśli. – sandalone

Odpowiedz

2

W IntelliJ IDEA 2016.3 można użyć opcję + powrotną. Zapyta cię, czy chcesz wprowadzić nazwany argument dla argumentu, na którym się znajdujesz i wszystkich obserwujących.

enter image description here

+1

To nie działa dla mnie. Czy jest to specyficzne dla określonego języka? – Adam

+0

Testowałem w Scala i Mac OSX, nie jestem pewien innych języków/środowiska. –

+0

Nie działa dla Javy w systemie MacOS. Cmd + P działa. –

2

Nie ma jeszcze takiej możliwości. Ponieważ IDEA nie wypełnia automatycznie argumentów, rozróżnianie konstruktorów w wyszukiwaniu nie ma sensu. Jest na to prośba (http://youtrack.jetbrains.net/issue/IDEABKL-5496), chociaż szczerze wierzę, że takie zachowanie jest zbyt niebezpieczne i podatne na błędy.

+1

Ctrl + P, Informacja o parametrze (w obrębie argumentów wywołania metody). – user7610

+7

Nie zgadzam się - dlaczego byłoby tak niebezpiecznie, że użytkownik mógł przynajmniej włączyć tę funkcję? Jest to bardzo przydatna funkcja i prawdopodobnie łatwa w implementacji - nie widzę wartości, jeśli nie wdrażam tej funkcji. – quantum

+0

Zawsze jest zabawnie, gdy każdy sprzedawca chce mi powiedzieć, co jest dobrym lub złym postępem w rozwoju. Jest to bardzo sensowne, ponieważ kiedy tworzę klasę, muszę wybrać, którego ctor użyć. W przeciwnym razie lekarze nie mieliby sensu. – Bevor

9

Cóż, jest kombinacja Ctrl + Shift + Spacja, która próbuje wymyślić zestaw możliwych argumentów. A jeśli po raz drugi naciśniesz Ctrl + Shift + Spacja, Idea spróbuje znaleźć argumenty, które pasują do wielu konwersji & konwersji.

Tak więc w twoim przykładzie Ctrl + Shift + Spacja prawie na pewno wywoła "nazwę" jako sugestię. A następny Ctrl + Ship + Space wywoła "wartość" jako sugestię.

+0

dzięki za podstęp! – Loic

97

zwykle zaczynają się CtrlP zobaczyć jakie argumenty są akceptowane (auto odgadnąć pełna jest sposób podatny na błędy w moim zdaniem). A jeśli, jak w przypadku, gdy chcesz wypełnić name typu n pojawi się rozwijane menu ze wszystkimi dostępnymi zmiennych/polami (ETC), wychodząc z ngóra/dół i Tab aby wybrać nazwę lub Ctrlspację aby wybrać metodę (lub nawet CtrlAltPrzestrzeń zostać zabity przez sugestie ;-), a następnie , i vTab na wartości.

+11

Szukałem tej funkcji: Ctrl + P. Dzięki! –

+11

Dla odniesienia, przy powiązaniach klawiszy OS X jest to ⌘P, a nazwa funkcji to "informacje o parametrze" (z Widok> Informacje o parametrze). –

11

Użyłem mapy klawiszy zaćmienia, gdzie Informacje o parametrach są nieprzypisane. Oto jak to zmienić:

enter image description here

Powiązane problemy