Hier ist mein Problem: Ich habe mehrere Klassen, die Teil desselben Pakets sind und Zugriff auf einen bestimmten Dateipfad benötigen
%Vor%Anstatt den gleichen Dateipfad in jeder einzelnen Klasse zu deklarieren, ist es möglich, einfach einen "globalen" Typ von Variable dieses FilePath zu haben, so dass alle Klassen darauf zugreifen können und ich ihn nur einmal deklarieren und aktualisieren muss. p>
Danke
Wenn Sie es als
deklarieren %Vor% Es wird überall als TestClass.filePath
Dies kann nützlich sein (und Ihr Anwendungsfall macht Sinn), aber öffentliche statische Variablen sind ein zweischneidiges Schwert und sollten nicht überstrapaziert werden, um einfach auf Dinge zugreifen zu können, die sich von überall ändern, da sie die Einkapselung unterbrechen und Ihr Programm erstellen können weniger klar.
Wenn die Zeichenfolge nie für annother geändert wird, können Sie das Schlüsselwort final
hinzufügen, wodurch dieses Verhalten nie geändert wird und die JVM zusätzliche Effizienzverbesserungen vornehmen kann (über die Sie sich keine Gedanken machen müssen)
Nennen Sie es so: Test.FILE_PATH
Beachten Sie final
, weil Sie es nur einmal deklarieren möchten.
Früher gab es auch eine Code-Konvention Endliche Konstanten in Großbuchstaben zu benennen, wobei die Komponenten durch Unterstriche "_" getrennt sind. Am Ende ist es wahrscheinlich eine Frage der Präferenz.
Ein Wort in final
- Wenn das Zeichenfolgenfeld eine konstante Variable ist, könnte ihr Wert in vielen Klassen, die darauf verweisen, dupliziert werden. Wir können das vermeiden, weil 1) die Zeichenfolge zu groß ist. 2) Wenn der String geändert wird, müssen wir alle Klassen neu kompilieren, die darauf verweisen.
Wir können es vermeiden
%Vor%siehe Ссылка
Eine Variable vom primitiven Typ oder Typ String, die final ist und mit einem konstanten Ausdruck zur Kompilierungszeit initialisiert wird (§15.28), wird als konstante Variable bezeichnet.
Tags und Links java