Два соображения
1) Возможно, класс уже расширен, поэтому не помечайте его как окончательный, иначе вы можете нарушить обратную совместимость.
2) Вы не хотите расширять класс, поэтому он должен быть помечен как окончательный.
Я думаю, что вам следует расширить старый класс новым классом, пометить старый класс как устаревший и объявить новый класс финальным.В новом классе вы можете добавить тег @SuppressWarning, чтобы успокоить устаревшее сообщение, а затем получить чистую компиляцию.
Код, использующий старый класс, получит предупреждение @Deprecated, но все равно будет компилироватьсяКод с использованием нового класса будет скомпилирован без ошибок.Это своего рода «сильное предложение» для ваших пользователей вместо обратной совместимости, и их довольно легко исправить, поскольку API на 100% совместим.