Zielony Smok - logo witryny

Co to znaczy 'deprecated'?

Deprecated‘ – oznacza ‘zdeprecjonowany’, ‘o obniżonej wartości’ lub mniej dokładnie ‘przestarzały’.

W języku Java słowo ‘deprecated‘ oznacza kod zdeprecjonowany, o obniżonej wartości. Przyczyną deprecjacji kodu najczęściej jest jego ewolucja. Kod jest mało wydajny, wykonuje się wolno, wymaga zbyt dużo pamięci, istnieje niebezpieczeństwo wycieku pamięci, istnieje lepszy kod wykonujący to samo, etc.

Formalnie kod może być używany, ale istnieje ryzyko, że w przyszłych wydaniach kodu ten kod zostanie
usunięty.

Narzędzie javadoc (narzędzie JDK) jest używane do generowania dokumentacji dotyczącej kodu.

Jednym ze znaczników używanych w opisach kodu, rozpoznawanym przez narzędzie javadoc jest znacznik @deprecated.

Tym znacznikiem mogą być oznaczane klasy lub składowe klas (pola, konstruktory, metody):

Przykład 1 z klasy BigDecimal

@Deprecated(since="9")
public static final int ROUND_CEILING
Deprecated.
Use RoundingMode.CEILING instead.

since=”9″ – oznacza ‘od wersji 9’

Przykład 2 z klasy Long

@Deprecated(since="9")
public Long​(String s) throws NumberFormatException
Deprecated.
It is rarely appropriate to use this constructor.
Use parseLong(String) to convert a string to a long primitive,
or use valueOf(String) to convert a string to a Long object.

Jak widzimy, w przypadku kodów oznaczonych jako deprecated, twórca kodu na ogół wyjaśnia jaka jest przyczyna deprecjacji, a także podaje czym zastąpić zdeprecjonowany kod.

W JDK istnieje narzędzie jdeprscan (narzędzie JDK) pozwalające na wyszukiwanie kodu oznaczonego jako deprecated w plikach *.class w folderach i archiwach.

Dla dobrego programisty Java słowo deprecated oznacza po prostu ‘zabroniony’ :-).