Уведомление программиста об использовании другой функции: Альтернативы @Deprecated?JAVA

Программисты JAVA общаются здесь
Anonymous
Уведомление программиста об использовании другой функции: Альтернативы @Deprecated?

Сообщение Anonymous »

Предположим, у меня есть эти классы:

Код: Выделить всё

    class Tool {
String method1() {
return "ok";
}
}

class RareSpecialTool extends Tool {
/**
* @deprecated better use {@link #method2()}
*/
@Deprecated @Override String method1() {
return super.method1();
}
/**
* This is a better method than {@link #method1()}, because it prevents programmer from making a mistake
*/
String[] method2() {
return new String[] { "even", "better" };
}
}
В 99% случаев используется Tool. В особых случаях будет использоваться RareSpecialTool. В другом коде/месте, чем обычный Tool (т. е. не внутри тех же циклов).
(Вызов RareSpecialTool.method1() внутри обычного кода не является проблемой)
Поэтому в особом случае мы явно обрабатываем RareSpecialTool вместо Tool.
Но поскольку метод1() имеет другую сигнатуру (возвращаемое значение), я не может переопределить метод, и метод2() намного лучше в этом особом случае: как мне сказать программисту НЕ использовать метод1() и вместо этого использовать метод2()?
До сих пор я использовал @Deprecated и документировал его, как указано выше, но всегда создается ощущение, что «этот метод станет бесполезным/уйдет через 15 лет». Здесь это не тот случай, просто гораздо более удобный и безопасный метод.
Есть ли другие способы подсказать программисту использовать новую функцию? Похоже на предупреждение об устаревании в большинстве IDE? Тег типа @Improvement или что-то в этом роде?
Могу ли я реализовать это сам, возможно, как еще одну @Annotation?
Кстати, я использую Eclipse.

Вернуться в «JAVA»