2009-11-05 11 views
5

Mam interfejs, który jest teraz pusty i rozszerza inny interfejs. Chciałbym usunąć pusty interfejs i użyć interfejsu podstawowego i próbuję znaleźć poprawną refaktoryzację w IntelliJ."Usuń pośrednika" Wbudowanie IntelliJ na pustym interfejsie

Próbowałem "usunąć pośrednika", ale dostałem "nie można wykonać refaktoryzacji.Domek powinien być umieszczony na nazwę pola do refaktoryzacji".

Odpowiedz

2

Myślę, że to, czego szukasz, to refaktoryzacja typu "Typ migracji".

+0

Nie działa - nadal pojawia się komunikat "Błąd obsługi powinien być ustawiony ...". – ripper234

+0

Gdzie stosujesz refaktor? Ten refactor musi być zastosowany w klasie deklaracji terenowej. Więc jeśli masz: A rozszerza się B .... prywatny A myField; można zastosować ten refaktoryzacji na A w linii deklaracji pola. –

2

Patrząc na a blog post explaining the "Remove Middleman" refactoring w IDEA, myślę, że po prostu nie można go użyć do tego. Jest po prostu dla "zastąpienia wszystkich połączeń z metodami delegującymi odpowiednimi bezpośrednimi połączeniami".

(Przez chwilę myślałem, że kolejny refaktoryzacji „należy użyć interfejs, gdzie to możliwe”, może być pomocne, ale nie mogłem dostać pracy albo, że w moim przypadku prostego testu.)

5

myślę, co chcesz zrobić to "wbudowany" refactor na niechcianym interfejsie, np

Jeśli

 
class Thing implements ThingA 

i

 
interface ThingA extends ThingB 

Aby pozbyć ThingA

robisz i inline (ctrl + alt + n), gdy karetka jest na ThingA, skończyć z:

 
class Thing implements ThingB 
0

Najlepszym sposobem na usunięcie zastosowań pustego interfejsu jest przez „Korzystanie z interfejsu w miarę możliwości”, przejdź do definicji interfejsu, który chcesz usunąć, a następnie wybierz „Use interfejs, gdzie to możliwe” z menu "Refaktor". Powinieneś wtedy skończyć z nieużywanym interfejsem, który możesz bezpiecznie usunąć.