В рамках зусиль, що займаються рефакторингу, або просто постійної розробки, певний метод або, можливо, цілий клас може в деякому сенсі застаріти. Java підтримує @Deprecatedпримітку, щоб вказати, що, мабуть, кращий спосіб обробляти цю функціональність. Я думаю, що це особливо корисно в публічних API, де наслідки видалення частин API можуть бути невідомі. Для непублічного API та проекту, що використовує системи контролю версій (тому видалення в певному сенсі може бути скасовано), коли доцільніше знецінити, а не видалити застарілі елементи (елементи)?