Чтобы найти устаревшие методы и классы, вы делаете то, что говорит цитируемый текст. Вы компилируетесь с помощью переключателя «-deprecation», а методы/классы оскорбления будут отображаться как предупреждающие сообщения компиляции. (Если вы используете IDE, тогда предупреждения об отказе будут включены/отключены каким-либо другим способом.)
Если вы действительно спрашиваете, как компилятор знает, что метод или класс устарел, ответ заключается в том, что класс или метод помечен как устаревший, помещая тег «@deprecated» в соответствующий комментарий javadoc. Компилятор java отмечает это и устанавливает атрибут в файле байт-кода при компиляции класса. Затем, когда вы пытаетесь использовать класс/метод в своем коде, компилятор java считывает байт-коды, отмечает атрибут и выводит предупреждающее сообщение.
Отказ предназначен для прочного намека на то, что данный метод или класс больше не должны использоваться. Устаревший класс или метод обычно имеют некоторые недостатки в нем (основные или второстепенные), которые не могут быть исправлены без нарушения существующего кода. Вместо этого была реализована несовместимая замена, которая требует внесения некоторых изменений в исходный код.
Теоретически устаревшие классы и методы могут быть удалены в будущих выпусках. Хотя Sun редко (если вообще когда-либо) делает это, сторонние разработчики библиотеки более охотно удаляют устаревшие методы при очистке своих API.
Флаг '-deprecated' недопустим и при использовании вызывает' Fatal error compiling: invalid flag: -deprecated'. Правильный флаг будет '-deprecation', как указано в вопросе выше. Замечание: я не могу отредактировать ответ, потому что дельта <6 символов. – user667