Wie erstelle ich eine "globale Variable" in Java, so dass alle Klassen darauf zugreifen können?

7

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

    
Chrystle Soh 12.11.2013, 20:59
quelle

4 Antworten

15

Wenn Sie es als

deklarieren %Vor%

Es wird überall als TestClass.filePath

zugänglich sein

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)

    
Richard Tingle 12.11.2013 20:59
quelle
9
%Vor%

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.

    
Blacklight 12.11.2013 21:01
quelle
1

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.

    
ZhongYu 12.11.2013 21:51
quelle
0
%Vor%

Hinweis:

1) Idealerweise besser, eine Konfigurationsdatei / Eigenschaftendatei zu verwenden - so können Sie den Pfad ohne Neukompilierung ändern.
2) Vermeiden Sie statische Variablen! (fast immer) Ссылка

    
user2984942 12.11.2013 21:22
quelle

Tags und Links