Gradle - не может подавлять & ldquo; Примечание: некоторые входные файлы используют или переопределяют устаревший API & rdquo ;, и т. Д. Output [duplicate]

Наверное, я очень опаздываю на вечеринку.

Как уже говорилось ранее, вызов input.nextLine() после получения вашего значения int решит вашу проблему. Причина, по которой ваш код не работал, заключается в том, что с вашего ввода (куда вы ввели int) ничего не оставалось хранить в string1.

Рассмотрим nextLine () как нечетный среди методов nextFoo () в классе Scanner. Давайте возьмем быстрый пример. Скажем, у нас есть две строки кода, подобные приведенным ниже:

int firstNumber = input.nextInt();
int secondNumber = input.nextInt();

Если мы вводим значение ниже (как одну строку ввода)

54 234

Значение нашей переменной firstNumber и secondNumber становится 54 и 234 соответственно. Причина, по которой это работает, заключается в том, что новый канал ( i.e\n ) НЕ НЕ автоматически генерируется, когда метод nextInt () принимает значения. Он просто берет «следующий int» и движется дальше. Это то же самое для остальных методов nextFoo (), за исключением nextLine ().

nextLine () генерирует новый фид строки сразу после принятия значения; это то, что означает @RohitJain, говоря, что новый канал «потребляется».

Наконец, метод next () просто берет ближайшую строку без создания новой строки; это делает это предпочтительным методом для взятия отдельных строк в одной и той же строке.

Надеюсь, это поможет ... Веселая кодировка!

47
задан Dhanuka 29 September 2015 в 09:33
поделиться

9 ответов

Из того, что я могу сказать в документах, вы не можете сделать это в командной строке.

Согласно документации javac , -Xlint: none только отключает предупреждения, «не предусмотренные спецификацией Java Language». По-видимому, предупреждение о том, что использование устаревших API-интерфейсов управляется спецификацией языка.

Ваш лучший вариант - исправить использование устаревших API. Тем не менее, вариантом было бы добавить аннотацию @SuppressWarnings("deprecation") к классам или методам, использующим устаревшие API.

30
ответ дан Lawrence Dol 25 August 2018 в 21:15
поделиться

При использовании gradle вы можете легко его настроить:

tasks.withType(JavaCompile) {
    options.deprecation = false
}

(проверено с помощью Gradle 2 и Java 8)

4
ответ дан Arne Burmeister 25 August 2018 в 21:15
поделиться

Если вы компилируете в командной строке, вы можете фильтровать сообщения с помощью grep``, just filtering out the messages that has unwanted content, like for example grip -v deprecated . You can use | `для отправки вывода в grep, например

your compile command | grip -v deprecated
-1
ответ дан Carlos Robles 25 August 2018 в 21:15
поделиться

использовать атрибут nowarn, см. ниже

, например

<javac srcdir="src" 
  destdir="build/classes" source="1.6" 
  target="1.6" debug="true" encoding="Cp1252"
  nowarn="on">

по умолчанию атрибут nowarn отключен

0
ответ дан coolcoder 25 August 2018 в 21:15
поделиться

Для других, которые Google искали эту проблему и наткнулись на этот поток, как я это сделал ...

Попробуйте: -Xlint: -deprecation

Кажется, что работает на JDK 6 ... не уверен в других.

20
ответ дан Jeff 25 August 2018 в 21:15
поделиться

Два возможных способа:

  1. не использовать устаревший API
  2. Использовать @SuppressWarnings("deprecation")
27
ответ дан Joachim Sauer 25 August 2018 в 21:15
поделиться

@SuppressWarnings("deprecation") не работает для меня, вместо этого я использовал

@SuppressWarnings("unchecked")
1
ответ дан Kaushal28 25 August 2018 в 21:15
поделиться

Если это основной Java API, почти наверняка будет замена, которая будет делать то, что вы хотите. Запустите javac с этим дополнительным параметром, а затем посмотрите на API для устаревшего метода и замените его соответствующим образом.

1
ответ дан Matt Poush 25 August 2018 в 21:15
поделиться

С Java 6 ни поддержка @Depreated, ни флаг компилятора не помогут вам здесь. Единственное решение, которое сработало для меня, - отправить комментарий javadoc с тегом @deprecated (small caps) на устаревший метод:

/**
  * @deprecated overriding deprecated method
  */
@Override
public javax.xml.bind.Validator createValidator() throws JAXBException {...}

(пример из класса, который происходит из JAXBContext.)

(я не импортировал класс устаревших Validator, чтобы избежать предупреждения в инструкции import.)

10
ответ дан Wolfgang 25 August 2018 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: