private static final String variable

Jesterhead

Mitglied
Hallo Leute,

ich habe mehrere Programme, die den selben Parameter benötigen. Dabei geht es z.B. um einen festen Pfad zu einem Verzeichnis. Da ich diesen Wert nicht in jedem Programm initialisieren will, muss das auf jeden Fall ausgelagert werden.

Ich würde das jetzt über eine Util Klasse mit getter Methode machen.

Gibt es dafür auch eine elegantere Lösung???

Danke und Grüße,
Jester
 

ceving

Aktives Mitglied
Also ich verwende für solche Sachen immer property-Files. HIER

Alternativ kann man die Properties auch mit -D beim Aufruf der Java-Engine übergeben. Hier ein Beispiel mit jsvc anstatt von java:
Code:
        exec jsvc \
            -Djava.security.egd=file:///dev/urandom \
            -Djsse.enableSNIExtension=false \
            -cp "$CLASSPATH" -user "$USER" \
            -outfile "$STDOUT" -errfile "$STDERR" \
            -pidfile "$PIDFILE" -procname "$PACKAGE" \
            "$CLASS"
 

ceving

Aktives Mitglied
Hört ihr mir überhaupt zu?

Ne weil du die Frage nicht liest. Er will den Pfad eben nicht redundant in allen seinen Programmen stehen haben, sondern die Information in das Programm herein reichen, damit sie nur einmal an einer Stelle steht, nämlich in einer Property-Datei oder in einem Wrapper-Script.

Deklariere dir doch einfach eine private static final String wasweissich = "./fester_Pfad/...";
Wo liegt denn da das Problem?

Es geht nicht darum, dass der Speicherort nicht private static final ist, sonder es geht darum, dass das String-Literal nicht da stehen soll, wo es steht, sondern von woanders herkommen soll. Wen du geschrieben hättest

Java:
private static final String wasweissich = System.getProperty("my_program_home");

hätte dir jemand zugehört.
 

Joose

Top Contributor
Ne weil du die Frage nicht liest. Er will den Pfad eben nicht redundant in allen seinen Programmen stehen haben, sondern die Information in das Programm herein reichen, damit sie nur einmal an einer Stelle steht, nämlich in einer Property-Datei oder in einem Wrapper-Script.

Es geht nicht darum, dass der Speicherort nicht private static final ist, sonder es geht darum, dass das String-Literal nicht da stehen soll, wo es steht, sondern von woanders herkommen soll. Wen du geschrieben hättest

Androbin hat ebenfalls recht mit seiner Antwort!

Der TO will an einer Stelle den selben Wert für mehrere Programme abfragen können.
(Es geht nicht ganz hervor ob dieser Wert beim Programmstart beeinflussbar sein soll, oder dieser auch fix im Code stehen darf)

Möglichkeit 1: per Property Datei oder als Parameter beim Start

Möglichkeit 2: Eine Klasse in einem "Utility Projekt" welche eine
Code:
static final
Variable mit dem gewünschten Wert enthält.


Java:
public class MyUtilityConstants {

    public static final String PATH = ".....";
}

Diese Klasse in ein eigenes Projekt stecken und bei allen wo es benötigt wird als Library anhängen ;-)
 
Zuletzt bearbeitet:

ceving

Aktives Mitglied
Möglichkeit 2: Eine Klasse in einem "Utility Projekt" welche eine
Code:
static final
Variable mit dem gewünschten Wert enthält.

Java:
public class MyUtilityConstants {
    public static final String PATH = ".....";
}

Diese Klasse in ein eigenes Projekt stecken und bei allen wo es benötigt wird als Library anhängen ;-)

Ja stimmt. Das könnte man theoretisch machen. Aber Pfade im Quelltext sind doch eigentlich "Pfui" oder?

Auf jeden Fall stehen sie im Widerspruch zur Plattform-Unabhängigkeit von Java.
 

Joose

Top Contributor
Ja stimmt. Das könnte man theoretisch machen. Aber Pfade im Quelltext sind doch eigentlich "Pfui" oder?

Auf jeden Fall stehen sie im Widerspruch zur Plattform-Unabhängigkeit von Java.

Ja bei Pfaden muss man aufpassen, wobei eine Kombination wie diese natürlich keine Probleme bereiten muss
Java:
public static final String BASE_CACHEPATH = System.getProperty("user.dir") + File.separator + ".cache" + File.separator;

Es kommt auch auf den Anwendungsfall an ... ist es ein Programm für die Firma, welche nur auf Windows setzt, so kann ich entsprechend Programmieren ohne mich auf die Plattformunabhängigkeit zu konzentrieren. Bei Programmen für jedemann kann so etwas natürlich eine Fehlerquelle sein!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Vererbung Static & private fields - Nicht ganz einfach? Allgemeine Java-Themen 4
temi Private statische Hilfsmethoden Allgemeine Java-Themen 33
G Public oder Private oder Protected Sinn Allgemeine Java-Themen 14
J private and arrays Allgemeine Java-Themen 2
Thallius Warum ist meine private porperty public? Allgemeine Java-Themen 7
Thallius Wie verstecke ich meinen private Key am besten im Code? Allgemeine Java-Themen 10
L Private Key aus KeyDatei extrahieren Allgemeine Java-Themen 2
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
G Testcases mit Junit auf private-Methode Allgemeine Java-Themen 7
S private ignorieren Allgemeine Java-Themen 7
Z aus private List<???> list eintrag löschen Allgemeine Java-Themen 4
P Private und public Allgemeine Java-Themen 2
tfa Unit-Tests für private Methoden Allgemeine Java-Themen 25
S In Subklasse auf private Variablen zugreifen Allgemeine Java-Themen 4
A Private-Wert eines Objekts auslesen Allgemeine Java-Themen 9
F Javadoc: @value tag nicht für private fields? Allgemeine Java-Themen 11
G per Reflection auf private Klassenattribute zugreifen? Allgemeine Java-Themen 9
M per reflection private attributsnamen auslesen Allgemeine Java-Themen 3
reibi Aufruf eines private Konstruktors Allgemeine Java-Themen 7
J Java Private Edition? Allgemeine Java-Themen 7
M Stärkerer access-modifier als "private"? Allgemeine Java-Themen 17
F Ein interface und private Methoden? Allgemeine Java-Themen 13
S private Vars in abstrakter Klasse nicht in der Unterklasse? Allgemeine Java-Themen 6
S private Instanzvaribalen bei "Innerer-Vererbung" Allgemeine Java-Themen 9
T ungewollter Zugriff auf private Variablen? Allgemeine Java-Themen 3
S private Methoden benutzen Allgemeine Java-Themen 11
G private vs. public JRE Allgemeine Java-Themen 3
E Methoden abstract static Methode Allgemeine Java-Themen 8
N nicht static und auch nicht new Allgemeine Java-Themen 3
P static Blocks und variablen Allgemeine Java-Themen 41
Kirby.exe Cannot make a static reference to the non-static field rimWidth Allgemeine Java-Themen 12
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
S static in Interface und Klasse Allgemeine Java-Themen 2
S static methode im Interface Allgemeine Java-Themen 1
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
K Static Variablen verbieten Allgemeine Java-Themen 10
C Generic collections und static typing Allgemeine Java-Themen 4
M Warum nicht static ? Allgemeine Java-Themen 10
M Eine static-Methode verlassen Allgemeine Java-Themen 2
B Schlüsselworte [ERLEDIGT] static { } - Was ist das und wofür kann ich das brauchen? Allgemeine Java-Themen 1
L Non-static-Variables in Enumerationen Allgemeine Java-Themen 2
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
T Enumeration/Static Final/Bitfield Allgemeine Java-Themen 6
T Static kann nicht verändert werden Allgemeine Java-Themen 3
W Threads Cannot make a static reference.. Allgemeine Java-Themen 13
H Programierstil: static - Zugriff vs. Staticzugriff Allgemeine Java-Themen 24
N Static oder andere Lösung Allgemeine Java-Themen 5
M Wo hin mit static factory methods? Allgemeine Java-Themen 40
M Public Static importRunning -> Bad Design oder ok ? Allgemeine Java-Themen 5
S Cannot make a static reference to the non-static field MySecondClass.Points Allgemeine Java-Themen 3
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
S auf public void Methode zugreifen ohne static Allgemeine Java-Themen 11
K Static - Problem Allgemeine Java-Themen 10
M Variablen Variablenzugriff aus static void Allgemeine Java-Themen 21
D API - Beispiel + static member in inner (non static) class Allgemeine Java-Themen 2
S static methoden Allgemeine Java-Themen 9
S Performance Frage: Objekt oder static? Allgemeine Java-Themen 33
X HTTP Problem mit static/non static JTextArea Update Allgemeine Java-Themen 17
A Annotation einer Subklasse im static-Block auslesen. Allgemeine Java-Themen 6
woezelmann referenz der outer class aus static nested class heraus Allgemeine Java-Themen 7
B static Variable / Unterklasse Allgemeine Java-Themen 2
I Was macht static { ... } ? Allgemeine Java-Themen 8
G static inner Klassen Allgemeine Java-Themen 7
G static und dynamic linking? Allgemeine Java-Themen 32
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
J Verständnisfrage - nested static classes Allgemeine Java-Themen 11
G static- Methoden überschreiben Allgemeine Java-Themen 10
E Geschwindigkeit static Allgemeine Java-Themen 6
V Static oder wie? Allgemeine Java-Themen 61
I reflection get inner static classes Allgemeine Java-Themen 2
L static main - Spezifikation? Allgemeine Java-Themen 7
G URLClassLoader stößt static Block nicht an Allgemeine Java-Themen 8
D static Allgemeine Java-Themen 46
P static-Methode aus dem Konstruktor aufrufen Allgemeine Java-Themen 6
oliver1974 "(.) should be accessed in a static way" Falsche W Allgemeine Java-Themen 6
P static Klassenvariable Allgemeine Java-Themen 15
B JPasswordField klassenübergreifend auslesen->static Probl Allgemeine Java-Themen 4
F Methoden: static vs. instance Allgemeine Java-Themen 24
MQue static Methoden/Klassen Allgemeine Java-Themen 7
K Warum static-Methoden nutzen Allgemeine Java-Themen 26
G Java-Befehle Native und Static Allgemeine Java-Themen 2
conan2 static-Block in Klassen Allgemeine Java-Themen 6
M JNI, static.a mit load.Library laden? Allgemeine Java-Themen 2
K Static Members von Superklasse für JEDEN Erben Allgemeine Java-Themen 6
padde479 The static method sleep(long) from the type Thread should. Allgemeine Java-Themen 2
M static-Methode vorschreiben Allgemeine Java-Themen 5
S singleton vs. static Allgemeine Java-Themen 7
G Object mit static Feldern speichern Allgemeine Java-Themen 9
J Warum heißt es eig. "public static void main" ? Allgemeine Java-Themen 4
conan2 "Cannot make a static reference to the non-static field Allgemeine Java-Themen 8
P Singleton vs static Allgemeine Java-Themen 19
J parameterized und static fields Allgemeine Java-Themen 4
A Static reference to non-static field Allgemeine Java-Themen 10
S static umgehen Allgemeine Java-Themen 5
G static oder nicht Allgemeine Java-Themen 4
J Problem mit static/non-static Allgemeine Java-Themen 2
G getAppletContext() in static Methode Allgemeine Java-Themen 3
m@nu Programm-Models in Static-Objekten speichern Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben