Печать карт использования стандартного метода ввода в java: предотвращение предупреждения о неиспользуемых локальных переменных - PullRequest
1 голос
/ 11 июля 2020

Я кодирую программу WorldMap. java, которая считывает информацию о границах страны (или другого c географического объекта) из стандартного ввода и отображает результаты на стандартном чертеже. Страна состоит из набора регионов (например, штатов, провинций или других административных единиц), каждый из которых описывается многоугольником.

Для входного формата - первая строка содержит два целых числа: ширина и рост. Оставшаяся часть ввода разделена на регионы:

Первая запись в каждом регионе - это название региона. Для простоты имена не будут содержать пробелов. Следующая запись - это целое число, указывающее количество вершин в многоугольнике, описывающем регион. Наконец, область содержит x- и y-координаты вершин многоугольника. Снимок текстового файла, используемого для стандартного ввода .

Мой код работает отлично, но при отправке задания я получаю предупреждение pmd-

WorldMap.java:16: Avoid unused local variables, such as 'name'. [UnusedLocalVariable]

Как я могу изменить свой код, чтобы избежать предупреждения pmd? Вот код:

 int width = StdIn.readInt();
    int height = StdIn.readInt();
    StdDraw.enableDoubleBuffering();
    StdDraw.setCanvasSize(width, height);
    StdDraw.setXscale(0.0, width);
    StdDraw.setYscale(0.0, height);
    while (!StdIn.isEmpty()) {
        String name = StdIn.readString();
        int vertices = StdIn.readInt();
        double[] x = new double[vertices];
        double[] y = new double[vertices];
        for (int i = 0; i < vertices; i++) {
            x[i] = StdIn.readDouble();
            y[i] = StdIn.readDouble();
        }
        StdDraw.polygon(x, y);
    }
    StdDraw.show();

PMD - это анализатор c исходного кода с открытым исходным кодом, который сообщает о проблемах, обнаруженных в коде приложения. Не стесняйтесь гуглить для получения более подробной информации.

1 Ответ

0 голосов
/ 11 июля 2020

Вы читаете значение String в переменной name в строке ниже, но нигде в коде не используете это значение String. String name = StdIn.readString();. Если вы не используете переменную имени для чего-либо, это означает, что вам не нужно читать в ней значение или, другими словами, вам не нужно ее объявлять. По этой причине PMD выдает предупреждение: либо вы пропустили использование переменной, либо можете удалить переменную, вывод программы не будет иметь никакой разницы.

...