2010-04-06 4 views
3

Я искал через Интернет и то, что я узнал, это:Как определить устаревшие методы в программе?

Для того, чтобы компилятор предупредит вас о детали которого методе вы использовали, что были устаревшими Переключатель на javac.exe -deprecation , Затем просмотрите Javadoc для устаревших методов до , чтобы узнать рекомендуемые замены. Иногда вам просто нужно переименовать. Иногда замена работает довольно по-разному.

Но я не совсем понимаю, как это работает, может ли кто-нибудь помочь мне в этом?

ответ

4

Отклонение метода сделано для предупреждения программистов о том, что этот метод в настоящее время не лучший для использования для желаемой функциональности. Это делается с помощью аннотации javadoc @deprecated. Когда вы используете флаг -deprecated в javac, он просто сообщает javac, чтобы поднять предупреждение, когда видит эти аннотации javadoc. Он указывает номер строки, в которой вы использовали устаревший метод, и имя устаревшего метода.

Оттуда вы должны посмотреть на javadoc JDK на веб-сайте Sun (er ... Oracle), чтобы узнать, какие рекомендации необходимы для получения желаемой функциональности. Иногда замена включает в себя создание нескольких вызовов методов, где вы бы сделали только один в прошлом. Обычно документация хороша в том, чтобы давать вам примеры и указывать вам в правильном направлении, когда есть новый способ делать вещи.

+0

Флаг '-deprecated' недопустим и при использовании вызывает' Fatal error compiling: invalid flag: -deprecated'. Правильный флаг будет '-deprecation', как указано в вопросе выше. Замечание: я не могу отредактировать ответ, потому что дельта <6 символов. – user667

0

Вы можете использовать любую IDE, например eclipse, которая может отображать устаревшие методы во время программирования, если вы привязали необходимый javadoc для классов, которые вы используете.

+2

Возможно ли найти его в IDE, например Eclipse или Netbeans, без необходимости кода? – MartinC

+0

http://stackoverflow.com/questions/233593/can-eclipse-be-used-to-find-all-deprecated-method-calls проверить это. – Samurai

3

Чтобы найти устаревшие методы и классы, вы делаете то, что говорит цитируемый текст. Вы компилируетесь с помощью переключателя «-deprecation», а методы/классы оскорбления будут отображаться как предупреждающие сообщения компиляции. (Если вы используете IDE, тогда предупреждения об отказе будут включены/отключены каким-либо другим способом.)

Если вы действительно спрашиваете, как компилятор знает, что метод или класс устарел, ответ заключается в том, что класс или метод помечен как устаревший, помещая тег «@deprecated» в соответствующий комментарий javadoc. Компилятор java отмечает это и устанавливает атрибут в файле байт-кода при компиляции класса. Затем, когда вы пытаетесь использовать класс/метод в своем коде, компилятор java считывает байт-коды, отмечает атрибут и выводит предупреждающее сообщение.

Отказ предназначен для прочного намека на то, что данный метод или класс больше не должны использоваться. Устаревший класс или метод обычно имеют некоторые недостатки в нем (основные или второстепенные), которые не могут быть исправлены без нарушения существующего кода. Вместо этого была реализована несовместимая замена, которая требует внесения некоторых изменений в исходный код.

Теоретически устаревшие классы и методы могут быть удалены в будущих выпусках. Хотя Sun редко (если вообще когда-либо) делает это, сторонние разработчики библиотеки более охотно удаляют устаревшие методы при очистке своих API.

0

Вы можете использовать IDE NetBeans. Он покажет устаревшие методы, удалив этот метод, а также вы сможете просмотреть причину и альтернативные методы для этого.