Die Deklaration einer Klasse als final
hat zwei verwandte, aber unterschiedliche Zwecke.
Er teilt dem Compiler mit, dass diese Klasse nicht erweitert werden darf. Dies geschieht hauptsächlich, um Fehler zu vermeiden.
Es sagt dem Leser "mach dir keine Sorgen, dass diese Klasse erweitert werden könnte". Dies dient dem besseren Verständnis.
Im Falle einer private final
inneren Klasse, können wir davon ausgehen, dass eine Person schreibt oder die Klasse ändert und dass sie tun es nach dem Entwurf zu verstehen. Daher ist die Wahrscheinlichkeit gering, dass jemand fälschlicherweise eine Klasse erweitert, die nicht (vom Design her) erweitert werden sollte.
Allerdings muss jemand, der den Code liest, der wissen muss, dass die private
innere Klasse möglicherweise erweitert wurde, die gesamte Java-Quelldatei scannen muss ... es sei denn, die Klasse wurde final
deklariert.
Daher könnte final
einen nützlichen Zweck ... dienen, um das Design manifest zu machen, um die Lesbarkeit zu verbessern.
Auf der anderen Seite, die final
im Beispiel Sie ohne besondere Absicht hinzugefügt worden sein könnte gefunden; d.h. es könnte einfach "redundant" sein.
Fragen Sie, warum sollte es endgültig sein, oder warum sollte es privat sein? – CubeJockey
Bester Fall: Es ist endgültig, weil der Autor klarstellen wollte, dass keine Klasse die 'SomeHandler'-Klasse erweitern sollte. – DwB
@CubeJockey Ich frage "warum sollte es endgültig sein". – shinkou