Come parte di uno sforzo di refactoring o di uno sviluppo continuo, un metodo particolare o forse un'intera classe può diventare obsoleto in un certo senso. Java supporta l' @Deprecated
annotazione per indicare che probabilmente esiste un modo migliore per gestire la funzionalità in questione. Immagino che ciò sia particolarmente utile nelle API pubbliche in cui gli effetti della rimozione di parti di un'API potrebbero non essere noti. Per un'API non pubblica e un progetto che utilizza sistemi di controllo delle revisioni (quindi l'eliminazione può essere annullata in un certo senso), quando è appropriato deprecare anziché eliminare gli elementi obsoleti?