2013-04-09 24 views

Odpowiedz

3

Czy masz operacje na urządzeniu List jako część publicznego interfejsu? W takim przypadku zaznacz również wszystkie te metody jako deprecated. W przeciwnym razie powinno być dobrze.

2

Musisz tylko dodać komunikat o wycofaniu do deklaracji czegokolwiek, co się wycofuje. Służy jako ostrzeżenie, że ludzie powinni unikać implementacji, która używa przestarzałej klasy, na przykład w List<DeprecatedClass>.

0

Wystarczy oznakowanie jako:

@Deprecated 
List<deprecatedClass> listOfDeperecatedClass 

powinno być w porządku.

4

Nie, nie musisz. Dodanie adnotacji @Deprecated do DeprecatedClass wygeneruje ostrzeżenie za każdym razem, gdy zostanie użyte.


Co powinien zrobić metody jest jednak oznakowanie innych klas, które biorą swój przestarzałej klasy jako argument lub zwrócić, jako przestarzałe, jak również. Dotyczy to dowolnego dostępu do kodu, który może być użyty przez inne instancje dla twoich nieaktualnych pól publicznych, stałych i tak dalej. Oczywiście nie można ich używać bez instancji wycofanych certyfikatów, więc mimo to ostrzeżenie jest wydawane, ale w poprawnej adnotacji i komentarzu dotyczącym przestarzałości należy podać wyjaśnienie i wskazać alternatywę, która jest cenną informacją, której potrzebujecie Państwo: do udzielenia.

Podpis metody jest jak umowa i jest to podpis klasy. Mówisz innym programistom, jakie metody mogą wywołać i jak mogą do nich zadzwonić. Mówisz im, które pola są dostępne. Inni programiści opierają swój kod na tym. Jeśli naprawdę musisz zerwać tę umowę, najpierw musisz podać zastępstwo dla tej umowy (nowa metoda z tą samą funkcjonalnością), a następnie powiedz im i daj im czas na przejście do nowej umowy (wycofaj stare metody i klasy) .

Oczywiście powyższe zakłada, że ​​kodujesz do odbiorców. Jeśli jesteś jedynym, który używa Twojego kodu i chcesz go po prostu wycofać, aby oczyścić kod bez przerywania kompilacji, po prostu wycofaj klasę, napraw ostrzeżenia i usuń ją.