Netbeans IDE gibt keine Warnungen über Methoden aus, die in Konstruktoren aufgerufen werden

8

Netbeans IDE ist gut darin, Code zu erkennen, der Ihnen Probleme bereiten könnte. Warum wird für

keine Warnung ausgegeben? %Vor%

vorausgesetzt, dass ich die Basisklassenfunktion foo () im Kindkonstruktor anrufe? Natürlich ist das vollkommen legitim, da das Basisobjekt durch den Punkt foo () erzeugt wird, aber foo () ist implizit eine virtuelle Methode, also würde ich wirklich eine Warnung erwarten wenn foo () als final .

Ich denke, dass die IDE eine Warnung ausgeben sollte, wenn Sie irgendeine Basisklassenfunktion von einem Kindklassenkonstruktor aufrufen, der nicht als endgültig markiert ist.

    
Bathsheba 21.06.2013, 09:03
quelle

1 Antwort

2

tut es.
Wenn Sie die Datei in NetBeans öffnen, sollten Sie eine gelbe Glühbirne (Hinweisanzeige) neben dem Aufruf von foo sehen. Es ist ein Vorschlag, dass Sie entweder:

  • Machen Sie Child final
  • Machen Sie foo endgültig, privat oder statisch

Wenn Sie es offensichtlicher haben möchten, gehen Sie zu Tools > Options oder Edit > Preferences oder Netbeans > Preferences (abhängig von Ihrem Betriebssystem).
Wählen Sie Editor
Wählen Sie Hints
Setzen Sie Language auf Java
Erweitern Sie Initialization
Wählen Sie Problematic call in the constructor
Ändern Sie Show as in Error
Klicken Sie auf OK

Jetzt erhalten sowohl die Zeile als auch Ihre Datei ein rotes Fehler-Abzeichen.

Beachten Sie, dass all dies verhindert, dass Sie den Indikator ignorieren. Der Code ist immer noch legales Java, also hindert NB Sie nicht daran zu kompilieren.

    
Devon_C_Miller 23.06.2013, 03:49
quelle

Tags und Links