2013-06-07 6 views
23

Próbowałem tego szukać, ale szczerze mówiąc, terminy do wyszukiwania są dla mnie ucieczką. Mały fragment kodu, a po nim pytanie.Kod Intellinie Zakończenie dla wszystkich metod zmiennych/pobierających zmiennej lokalnej obiektu

Public class Person { 

    String firstName; 
    String lastName; 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 
    ... 
} 

W inny obiekt, który wykorzystuje tę osobę obiekt chciałbym, aby móc rozwinąć wszystkie metody ustawiające w IntelliJ.

public class PersonAssembler { 
    public static Person assemblePerson(SomeOtherObject someOtherObject) { 

    Person person = new Person; 

    //intellj would provide this below. 
    person.setFirstName(); 
    person.setLastName(); 
    //end of what intellj provides. 

    return person; 
} 

Czy to możliwe? Przejrzałem skróty klawiaturowe itp. Od pewnego czasu używam intellij, więc zastanawiałem się, czy ktoś ma wgląd w to.

Miałem nadzieję na tryb edycji kolumny, a następnie uzupełnianie kodu i być może strzałkę zmiany + strzałki w dół, aby wybrać wiele uzupełnień, ale bez powodzenia. Co nie jest zaskakujące. Nie chciałbym pisać tego w GUI.

Edytuj: Dodałem trochę wyjaśnień i szczerze zapomniałem o tym pytaniu. Odpowiedzi nie mają nic wspólnego z faktycznym pytaniem, jeśli przeczytasz je uważnie. Nie mówię o menu kontekstowym Generuj.

+0

znalazłeś rozwiązanie dla tego? Mam to samo pytanie ... nie chcę pisać kodu dla 40 seterów w teście ..... – Paundl

Odpowiedz

8

Jest stare pytanie, ale może pomaga komuś.

Także to nie jest "jednym kliknięciem" działanie, ale ...

Kroki do wykonania:

  • Przejdź do pliku klasy
  • Otwórz widok Struktura (lewy panel)
  • Wybierz wszystkie setery (posortuj alfabetycznie, jeśli to konieczne) i skopiuj
  • Powrót do docelowej klasy/metody
  • Wklej skopiowany
  • Edytuj (w trybie kolumny), aby dołączyć person. na początku każdej klasy i () na końcu.
+1

Bardzo ładne! Jest to bardzo wnikliwe i działa bardzo dobrze. Dzięki! –

12

W projekcie kliknij prawym przyciskiem myszy w dowolnym miejscu na ekranie pisania i kliknij "Wygeneruj ...", a następnie "Getter i Setter". Następnie przytrzymaj klawisz Ctrl i kliknij pola, dla których chcesz utworzyć narzędzia pobierające i ustawiające, a następnie kliknij przycisk "OK".

+9

Nie wydaje się, że chce generować obiekty pobierające/ustawiające - chce generować wywołania ustawiające w klasie klienta zamiast. –

+0

Czy istnieje sposób na automatyzację tego? Nie mogę znaleźć odpowiedniego skrótu mapy klawiszy. – Blauhirn

+0

Dobre rozwiązanie przy tworzeniu nowej klasy podobnej do struct – Drakes

5

nie jestem pewien, jak to zrobić w IntelliJ, ale będę link do ramy sprawia, że ​​tego typu rzeczy więc znacznie łagodniejsze w Javie: Projekt Lombok

miała swój kod, na przykład, będzie wyglądać tak:

public class Person { 
    @Setter 
    @Getter 
    String firstName; 
    String lastName; 
} 

jest pluging dla IntelliJ które rozwiązuje go, więc nie dostać żadnych irytujących ostrzeżeń, jak również.

http://projectlombok.org/

3

gdy curser jest wewnątrz nowo utworzonej klasie następnie można nacisnąć Alt + Insert - powinno pojawić się okno dialogowe, a następnie można wybrać Getter i Setter

enter image description here

+1

W "Macu" jest to 'Ctrl' +' return' – zhuguowei

+0

w Intellijmie możliwe jest niestandardowe ustawienie skrótów klawiszowych - jednak wolę domyślnie – serup

6

Skrót do tworzenia ustawnika zbierania jest ALT+Insert w Intellij.

+1

Dzięki. Pomógł mi. – parsecer

2

tutaj jest mój kod wtyczki genSets

Foo foo = new Foo();

jak ten

foo.allSet

wygeneruje

foo.setName(); 
foo.setAge(); 
foo.setBar(); 
foo.setTest(); 
foo.setLike(); 
+0

Czy istnieje skompilowana wtyczka do tego? – aristotll

+0

@aristotll Jeśli przejdziesz do [wydania] (https://github.com/yoke233/genSets/releases) na stronie Github, możesz pobrać skompilowaną wtyczkę. – muenchdo

1

Wtyczka ta może pomóc GenerateAllSetter

Naciśnij przycisk CTRL + ENTER, z którego chcesz skorzystać i wygeneruje dla Ciebie wywołanie setera.