Aby skorzystać z sprawdzania kompilatora, należy zawsze używać adnotacji Zastąp. Ale nie zapominaj, że Java Compiler 1.5 nie zezwoli na tę adnotację podczas przesłonięcia metod interfejsu. Możesz po prostu użyć go do zastąpienia metod klasowych (abstrakcyjnych lub nie).
Niektóre środowiska IDE, takie jak Eclipse, nawet skonfigurowane ze środowiskiem wykonawczym Java 1.6 lub nowszym, zachowują zgodność z Java 1.5 i nie pozwalają na użycie @override, jak opisano powyżej. Aby tego uniknąć, należy przejść do: Właściwości projektu -> Kompilator Java -> Zaznacz „Włącz ustawienia specyficzne dla projektu” -> Wybierz „Poziom zgodności kompilatora” = 6.0 lub wyższy.
Lubię używać tej adnotacji za każdym razem, gdy nadpisuję metodę niezależnie, jeśli baza jest interfejsem lub klasą.
Pomaga to uniknąć typowych błędów, na przykład gdy myślisz, że przesłoniłeś moduł obsługi zdarzeń, a potem nic się nie dzieje. Wyobraź sobie, że chcesz dodać detektor zdarzeń do niektórych składników interfejsu użytkownika:
someUIComponent.addMouseListener(new MouseAdapter(){
public void mouseEntered() {
...do something...
}
});
Powyższy kod kompiluje się i uruchamia, ale jeśli poruszysz myszą wewnątrz jakiegoś komponentu UIC, kod „zrób coś” zapisze polecenie uruchomienia, ponieważ tak naprawdę nie zastępujesz metody podstawowej mouseEntered(MouseEvent ev)
. Właśnie tworzysz nową metodę bez parametrów mouseEntered()
. Zamiast tego kodu, jeśli użyłeś @Override
adnotacji, zobaczyłeś błąd kompilacji i nie marnowałeś czasu na zastanawianie się, dlaczego program obsługi zdarzeń nie działa.