Поиск устаревших сообщений в документации Java

Как перейти к информационным сообщениям об устаревшем классе в документации Java?

Я видел что-то подобное в других ответах:

Из документации StringTokenizer:

StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

Но как мне добраться до этого информативного сообщения в документации Java? Все, что я вижу, это УСТАРЕВШАЯ ссылка вверху. Мне нужна дополнительная информация, чтобы я мог понять причину, по которой она устарела, и использовать ее альтернативу.

Вы имеете в виду внутри вашей IDE? Если да, то какую IDE вы используете? Если вы правильно настроили параметры Javadoc в своей среде IDE, они должны появиться. По крайней мере, в моем Eclipse. Помимо этого, официальная документация содержит все, но вы уже связали это.

Zabuzard 16.04.2018 00:54

Добро пожаловать в SO. В чем именно заключается ваш вопрос? Как узнать, что класс вообще устарел? Или как получить быстрый доступ через IDE?

Neuron 16.04.2018 01:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
257
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Надежного способа сделать это не будет. Найденный вами текст - неофициальный совет о классе. Этот класс формально НЕ является устаревшим. Устарело означает что-то очень специфическое в контексте Java. Это намного сильнее, чем "использование не рекомендуется в новом коде".

Если класс или член класса В самом деле устарел в Java, вы увидите аннотацию @Deprecated в исходном коде. Это то, на что цепочка инструментов Java обращает внимание. Также может быть тег javadoc @deprecated с объяснением и предложениями альтернатив, где это необходимо. Это то, что превращено в заголовок «Устарело:» в документации javadocs.

Чтобы найти неформальный совет, подобный приведенному вами примеру, вероятно, потребуется поискать в базе кода библиотеки Java или дереве javadoc ключевые фразы, такие как «устаревшие» и «не рекомендуется». Затем вам нужно будет вручную отфильтровать ложные срабатывания.

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

Что касается упомянутого вами deprecated link at the top, я полагаю, вы имеете в виду следующее: https://docs.oracle.com/javase/8/docs/api/deprecated-list.html

Ну, как вы сказали, эти находятся - вся информация, которую вы найдете, и они тоже довольно информативны.

Возьмем, к примеру, конструктор Date(int year, int month, int day), если прокрутить вниз до устаревший раздел конструктора, можно найти следующее:

java.sql.Date(int, int, int)

instead use the constructor Date(long date)

и он делает то же самое для всех классов / методов / интерфейсов, отмеченных аннотацией @Deprecated в JDK.

Кроме того, для StringTokenizer, если вы прочитаете чуть ниже цитированной вами строки, будет сказано следующее:

The following example illustrates how the String.split method can be used to break up a string into its basic tokens:

String[] result = "this is a test".split("\\s");
for (int x=0; x<result.length; x++)
    System.out.println(result[x]);

По сути, StringTokenizer больше не нужен, потому что объект String теперь имеет метод split, что делает StringTokenizer бесполезным.

Другие вопросы по теме