Ich habe eine Liste konstanter Zeichenfolgen, die ich während meines Java-Programms zu unterschiedlichen Zeiten anzeigen muss.
In CI könnten die Zeichenfolgen wie folgt oben in meinem Code definiert werden:
#define WELCOME_MESSAGE "Hello, welcome to the server"
#define WAIT_MESSAGE "Please wait 5 seconds"
#define EXIT_MESSAGE "Bye!"
Ich frage mich, was ist die Standardmethode, um so etwas in Java zu tun?
static final String WELCOME_MESSAGE = "Hello";
?final
in Java bedeutet, dass die Referenz nicht geändert werden kann - das Objekt, auf das sie verweist, jedoch möglicherweise noch geändert werden kann. Zum Glück istString
Java eine unveränderliche Klasse, daherfinal String
ist a in beiden Punkten const.Antworten:
Normalerweise definieren Sie dies oben in einer Klasse:
public static final String WELCOME_MESSAGE = "Hello, welcome to the server";
Verwenden Sie natürlich die entsprechende Mitgliedersichtbarkeit (
public
/private
/protected
), je nachdem, wo Sie diese Konstante verwenden.quelle
static
. Wenn Sie es privat und nicht statisch machen, wird jedes Mal, wenn Sie den Typ instanziieren, eine neue Kopie der Zeichenfolge erstellt. Siehe stackoverflow.com/q/1415955/247763Es würde so aussehen:
public static final String WELCOME_MESSAGE = "Hello, welcome to the server";
Wenn die Konstanten nur in einer einzelnen Klasse verwendet werden sollen, möchten Sie sie
private
stattdessen erstellenpublic
.quelle
public static final String YOUR_STRING_CONSTANT = "";
quelle
Wir deklarieren die Konstante normalerweise als
static
. Der Grund dafür ist, dass Java jedes Mal, wenn Sie ein Objekt der Klasse instanziieren, Kopien nicht statischer Variablen erstellt.Wenn wir also die Konstanten
static
erstellen, würde dies nicht der Fall sein und Speicherplatz sparen .Mit können
final
wir die Variable konstant machen.Daher empfiehlt es sich, eine konstante Variable zu definieren:
private static final String YOUR_CONSTANT = "Some Value";
Der Zugriffsmodifikator kann
private/public
von der Geschäftslogik abhängen.quelle
Sie können verwenden
public static final String HELLO = "hello";
Wenn Sie viele Zeichenfolgenkonstanten haben, können Sie die externe Eigenschaftendatei / einfache Klasse "Konstantenhalter" verwenden
quelle
Oder ein anderer typischer Standard in der Branche ist die Verwendung einer Klassendatei mit dem Namen Constants.java, die alle Konstanten enthält, die im gesamten Projekt verwendet werden sollen.
quelle
einfach benutzen
final String WELCOME_MESSAGE = "Hello, welcome to the server";
Der Hauptteil dieser Anweisung ist das Schlüsselwort 'final'.
quelle