Подтвердить что ты не робот

Каков самый ясный способ обесценить пакет в Java?

Я работаю над новой базой кода и переношу систему в новую структуру.

Есть несколько пакетов, которые я бы хотел обесценить, просто для того, чтобы дать понять другим разработчикам, что все, что находится внутри этого пакета, больше не должно использоваться для новой разработки.

Каков наилучший способ указать, что весь пакет устарел?

4b9b3361

Ответ 1

Вы сами сказали: вы хотите осуждать все, что находится внутри пакета, а не сам пакет. Пакет - не что иное, как пространство имен, и обесценивание пространства имен имеет другое значение - вроде бы не используйте это пространство имен больше. Например, не добавляйте никаких новых элементов в это пространство имен.

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

Ответ 2

Я должен был сделать это недавно и использовал файл package-info.java для обесценения пакета.

http://www.intertech.com/Blog/whats-package-info-java-for/

Добавьте файл package-info.java в свой пакет только с объявлением пакета:

/**
 * @deprecated As of release 2.0, replaced by {@link com.acme.new.package}
 */
@Deprecated
package com.acme.old.package;

В Eclipse все места, где пользователь импортирует класс из этого пакета, будут подчеркнуты с предупреждением об отказе.

Ответ 3

Используйте AspectJ. Создайте аспект, который выдает предупреждение компилятора при использовании пакета:

public aspect DeprecationAspect{

    declare warning :
        call(* foo.bar..*(..)) : "Package foo.bar is deprecated";

}

(Вы можете легко добавить AspectJ в свою сборку, если используете ant или maven)

Ответ 4

Вы можете создать аннотацию пакета и обесценить любой пакет с помощью @Deprecated:)

Ответ 5

Для тех, кто пришел позже...
Мое решение с IDEA "Заменить в пути"

Текст для поиска: (public | protected) + (\ s) (аннотация) (\ s) (статический) (\ s) (окончательный) (\ s) * (класс | интерфейс | перечисление | Enum)
Заменить на: @Deprecated\n\$1\$3\$5\$7\$9
Параметры: (выберите) Регулярные выражения
Каталог: {Выберите dir}