Como parte de um esforço de refatoração ou apenas um desenvolvimento contínuo, um método específico ou talvez uma classe inteira pode se tornar obsoleta em algum sentido. Java suporta a @Deprecated
anotação para indicar que provavelmente existe uma maneira melhor de lidar com a funcionalidade em questão. Eu imagino que isso seja particularmente útil em APIs públicas, onde os efeitos da remoção de partes de uma API podem não ser conhecidos. Para uma API não pública e um projeto que usa sistemas de controle de revisão (para que a exclusão possa ser desfeita em algum sentido), quando é apropriado reprovar em vez de excluir o (s) elemento (s) obsoleto (s)?
fonte
IMHO se você pode garantir que ninguém o esteja usando e nunca usará, basta removê-lo. (Isso pode ser complicado na presença de reflexão, ou componentes externos, como macros Velocity - IDEs modernos, como o IntelliJ, podem encontrar referências em, por exemplo, JSP, mas não por meio de reflexão ou no Velocity.)
Se existe uma alternativa melhor, mas a antiga ainda é usada em muitos lugares, e atualmente você não tem tempo para refatorar todo o código do cliente, é adequado @ reprovar a classe / método obsoleto (com um comentário adequado sobre a alternativa preferida).
fonte