In einigen Codierungsstandards habe ich eine Richtlinie gesehen, die besagt, dass alle lokalen Variablen bei der Deklaration initialisiert werden müssen. Zweifellos haben sich die Autoren von Suns Java Coding Standard Guideline 6.2 inspirieren lassen, die besagt
Versuchen Sie, lokale Variablen dort zu initialisieren, wo sie deklariert sind. Der einzige Grund, eine Variable nicht dort zu initialisieren, wo sie deklariert ist, besteht darin, dass der Anfangswert von einer vorher stattfindenden Berechnung abhängt.Hört sich alles schön und gut an. Was könnte daran falsch sein? Nun, das Ergebnis dieser Richtlinie ist, dass viele Entwickler, denen kein sinnvoller Wert für die Initialisierung ihrer Variablen einfällt, diese mit Null initialisieren, anstatt sie unitialisiert zu lassen. Dies hat die unangenehme Eigenschaft, dass viele NullPointerExceptions nicht abgefangen werden, die zu einem Kompilierzeitfehler in der Art von "Die lokale Variable x wurde möglicherweise nicht initialisiert" geführt hätten, wenn der Entwickler die Variable stattdessen einfach uninitialisiert gelassen hätte. Es ist schade, dass Sun solche dummen Dinge empfiehlt, die wahrscheinlich von der C/C++-Ära inspiriert wurden, als uninitialisierte Variablen Müll enthielten. Andererseits wird Core J2EE Patterns immer noch gedruckt, obwohl fast alle darin beschriebenen Muster inzwischen entweder veraltet oder völlig unangemessen sind. Aber dazu später mehr...
Verfasst von
Vincent Partington
Unsere Ideen
Weitere Blogs
Contact
Let’s discuss how we can support your journey.



