Der Fehler "Das Array wird nur geschrieben, nie gelesen" wird im Java-Code angezeigt

Aug 25 2020

Ich habe versucht, etwas Java zu verbessern, und ich versuche, die Grundlagen aufzufrischen, also habe ich das 24-Stunden-Java-Buch von Sam durchgearbeitet. Eines der Projekte, um sich mit der Beschreibung von Objekten vertraut zu machen, enthält den folgenden Code:

package com.java24hours;

public class GremlinLab {
    public static void main(String[] arguments) {
        int numGremlins = Integer.parseInt(arguments[0]);
        if (numGremlins > 0) {
            Gremlin[] gremlins = new Gremlin[numGremlins];
            for (int i = 0; i < numGremlins; i++) {
                gremlins[i] = new Gremlin();
            }
            System.out.println("There are " + Gremlin.getGremlinCount()
                + " gremlins.");
        }
    }
}

Der Fehler "Das Array wird nur beschrieben, nie gelesen" wird beim Kompilieren in der 7. Zeile angezeigt:

Gremlin[] gremlins = new Gremlin[numGremlins];

und ich kann für mein Leben nicht herausfinden, warum das nicht funktioniert! Entschuldigung, wenn ich dumm bin, aber jede Hilfe wird sehr geschätzt :) Danke!

Tut mir leid, schnell zu bearbeiten, um die andere Klasse hinzuzufügen, die ich nicht erwähnt habe !!

Ich habe auch die folgende Klasse:

package com.java24hours;

public class Gremlin {
    static int gremlinCount = 0;

    public Gremlin() {
        gremlinCount++;
    }

    static int getGremlinCount() {
        return gremlinCount;
    }
}

Ich habe dann die Befehlszeilenargumente durch Anpassen der Projektkonfiguration angegeben.

Letzte Änderung !! ... Vielen Dank an alle, ich weiß das wirklich zu schätzen. Ich verwende eine IDE und habe die Klassen in den Quellpaketordner anstatt in das Paket 'com.java24hours' verschoben ... und meine ursprünglichen Codes haben einwandfrei funktioniert?! Klar bin ich ein Neuling! Nochmals vielen Dank an alle :)

Antworten

3 Code-Apprentice Aug 25 2020 at 22:15

Dies ist eine Warnung, kein Fehler. Sie können es ignorieren und Ihr Programm funktioniert wie beabsichtigt.

Die Warnung ist, weil Sie ein Array erstellen und es mit Elementen füllen. Aber dann verwenden Sie niemals das Array oder die Elemente dieses Arrays für irgendetwas. Zum Beispiel könnten Sie tun

System.out.println("There are " + gremlins.length + " gremlins.");

um die Länge des Arrays zu drucken. Dadurch wird die Warnung entfernt.

Besser noch, wenn Sie dies als Übung schreiben, um mehr über staticMethoden und Variablen zu erfahren , verwenden Sie einfach überhaupt kein Array.

Bohemian Aug 25 2020 at 22:14

Sie machen nichts mit den Elementen des gremlinsArrays. dh nirgendwo macht Ihr Code so etwas gremlins[i].someMethod(), aber es ist nur eine Warnung.