6 Stimmen

Was sind "unvermeidliche generische Typenprobleme" in Eclipse für Java?

Eclipse kann so konfiguriert werden, dass es "unvermeidbare generische Typprobleme ignoriert", wenn die Einstellungen für den Java-Compiler im Abschnitt "Fehler/Warnings" festgelegt werden.

Was sind solche "unvermeidbaren" generischen Typprobleme in Java? Ist es sicher, diese zu ignorieren? Wann treten sie auf?

8voto

aioobe Punkte 397211

Aus der Dokumentation des Features:

Wenn diese Option aktiviert ist, gibt der Compiler einen Fehler oder eine Warnung aus, selbst wenn er ein generisches Typenproblem erkennt, das vom Programmierer nicht vermieden werden konnte. Als Beispiel kann es vorkommen, dass ein Typ gezwungen ist, Roh-Typen in seinen Methodensignaturen und Rückgabetypen zu verwenden, weil die Methoden, die er von seinem Oberklasse überschreibt, bereits Roh-Typen verwenden.

Also beispielsweise:

class Test {
    public void method(ArrayList list) {
    }
}

class TestSub extends Test {

    @Override
    public void method(ArrayList list) {
    //                 ^^^^^^^^^
    //     Beschweren über Verwendung von Roh-Typ oder nicht?

        System.out.println("Überschrieben");
    }
}

1voto

Ted Hopp Punkte 227177

Von der Eclipse-Hilfeseite:

Wenn aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, auch wenn er ein generisches Typproblem erkennt, das vom Programmierer nicht vermieden werden konnte. Als Beispiel kann ein Typ gezwungen sein, Rohdatentypen in seinen Methodensignaturen und Rückgabetypen zu verwenden, weil die Methoden, die er von einem Super-Typ überschreibt, bereits Rohdatentypen verwenden.

0voto

WhyNotHugo Punkte 8874

Sie sollten Warnungen wirklich niemals ignorieren. Sie sind aus einem bestimmten Grund vorhanden. Versuchen Sie im Allgemeinen, das zu beheben, was sie verursacht. Manchmal sind sie zur Laufzeit sicher, können aber die Lesbarkeit des Codes verbessern, manchmal entstehen sie wirklich wegen etwas, das Ihren Code zum Absturz bringen kann.

Eine Menge macht Ihren Code robuster/lesbarer/wartbarer. Außerdem kann das Ignorieren von ihnen Ihre Arbeit in Zukunft schwieriger machen, wenn Sie (oder jemand anders) Ihren Code ändern müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X