2011-07-25 9 views

Odpowiedz

5

Nie sądzę, że został wprowadzony w Eclipse jeszcze parametrów. Jest to raczej rzadkie refaktoryzacji, choć ...

Ale jeśli hierarchia typ poniżej A nie jest zbyt skomplikowane, ale spróbuj użyć tego regex-search-replace (gdzie A|B|C oznacza A i wszystkie podtypy A, np B i C):

\b(A|B|C)<\s*(\w+)\s*,\s*(\w+)\s*> 

zmiana: ponieważ chcesz, aby dopasować bardziej wyrafinowane rzeczy, spróbuj tego (bez sztucznych łamanie wierszy):

\b(A|B|C)< 
    \s*((?:\w+|\?)(?:\s+(?:extends|super)\s+(?:\w+|\?))?)\s*, 
    \s*((?:\w+|\?)(?:\s+(?:extends|super)\s+(?:\w+|\?))?)\s*> 

zastąpić

$1<$3, $2> 

Ponieważ używasz Eclipse, można ręcznie sprawdzić każde zastępstwo za poprawność

+0

Byłoby mi dobrze, aby włączyć opcję słowa kluczowego 'extends' w regex search/replace –

+0

True! Zaktualizuję twój szalony regex ;-) –

+0

PS: Nie obwiniaj mnie, jeśli to działa przez 1/2h, choć ... ;-) –

2

W Eclipse prawym przyciskiem myszy na metodzie, następnie Refactor-> podpis Zmień sposób, można zmienić kolejność tam

+0

OP pyta o przełączanie ogólnych parametrów typu klasy, a nie parametrów metody –

+0

To nie jest metoda, to deklaracja klasy. –

+0

Och, mój błąd, źle przeczytałem pytanie. W tym przypadku nie sądzę, że Eclipse ma cokolwiek zaimplementowane – jasalguero

1

Jeśli nie używasz Eclipse (lub innego narzędzia, które ma dobrą refaktoryzacji - wysoce zalecane, jeśli nie są), wtedy mogę wymyślić dwa sposoby, aby to zrobić:

Po pierwsze: Jeśli używasz TDD, napisz test, który zakończy się sukcesem tylko wtedy, gdy zmienne zostaną poprawnie zamienione. Następnie wprowadź zmianę w metodzie podpisu i upewnij się, że test się powiódł.

drugie: 1. Zdjąć 2nd parametr z podpisem metoda, która rzuci błędów kompilacji na wszystkich połączeń do tej metody 2. Przejdź do każdej z linii, które są upadających kompilację i ostrożnie zamienić zmienne 3 . Włóż 2nd zmienną z powrotem do podpisu metody w nowym, odwrócona kolejność 4. Uruchom kilka testów aby upewnić się, że nadal działa tak, jak oczekują go

druga metoda jest oczywiście brzydkie. Ale jeśli nie korzystasz z IDE z dobrym wsparciem refaktoryzacji, błędy kompilacji są dobrym sposobem na uchwycenie 100% wywołań tej metody (przynajmniej w twoim projekcie). Jeśli piszesz bibliotekę kodów, która jest używana przez inne osoby lub przez inne programy, znacznie trudniej jest zakomunikować tę zmianę wszystkim zainteresowanym stronom.

+1

Nawet 'vi' zna wyrażenia regularne! ;-) –

+0

... ale dobrych punktów, w przeciwnym razie –

Powiązane problemy