2012-03-09 9 views
42

Mam listę stałych ciągów, które muszę wyświetlać w różnych momentach podczas mojego programu Java.Definiowanie stałego ciągu w Javie?

W CI mógłby określać ciągi tak na szczycie mojego kodu

#define WELCOME_MESSAGE "Witam, witam się z serwerem"

#define WAIT_MESSAGE "Poczekaj 5 sekund"

#define EXIT_MESSAGE "Cześć!"

Zastanawiam się, jaki jest standardowy sposób robienia tego w Javie?

+4

'static final String WELCOME_MESSAGE =" Hello ";'? –

+5

Czy zrobiłeś jakieś badania? – Madbreaks

+3

Tak, ale czytałem niektóre strony internetowe, na których mówiono, że "ostateczna" nie jest stała w java, więc nie byłem pewien. – csss

Odpowiedz

94

Zazwyczaj, można określić to ku górze klasy:

public static final String WELCOME_MESSAGE = "Hello, welcome to the server"; 

Oczywiście, należy zastosować odpowiednią widoczność użytkownika (public/private/protected) na podstawie której używasz tej stałej.

+1

Zawsze zastanawiałem się, czy nie jest konieczne ustawianie stałej jako "statycznej", jeśli definiujesz stałą jako "prywatną"? – ChallengeAccepted

+4

Nie, nadal powinno być "static". Uczynienie go prywatnym i niestatycznym wciąż tworzy nową kopię ciągu za każdym razem, gdy tworzysz instancję. Zobacz http://stackoverflow.com/q/1415955/247763 – derekerdmann

10

To będzie wyglądać następująco:

public static final String WELCOME_MESSAGE = "Hello, welcome to the server"; 

Jeżeli stałe są do użytku tylko w jednej klasie, to chciałby, aby im private zamiast public.

4
public static final String YOUR_STRING_CONSTANT = ""; 
3

Można użyć

public static final String HELLO = "hello"; 

jeśli masz wiele stałe ciągów znaków, można użyć zewnętrznego pliku nieruchomość/prosty klasy "stała posiadacz"

1

prostu użyć

final String WELCOME_MESSAGE = "Hello, welcome to the server"; 

główną częścią tej instrukcji jest "końcowe" słowo kluczowe.

3

Innym typowym standardem w branży jest posiadanie pliku klasy o nazwie Constants.java zawierającego wszystkie stałe, które będą używane w całym projekcie.

1

Zazwyczaj deklarujemy stałą jako static. Powodem tego jest to, że Java tworzy kopie niestatycznych zmiennych za każdym razem, gdy tworzysz obiekt klasy.

Jeśli więc wprowadzimy stałe static, nie zrobimy tego, a zaoszczędziłoby pamięć.

Dzięki final możemy ustawić stałą wartość.

Stąd najlepszych praktyk, aby zdefiniować zmienną stałą jest następujący:

private static final String YOUR_CONSTANT = "Some Value"; 

Modyfikator dostępu może być private/public zależności od logiki biznesowej.

+0

Mylisz się. Nie pomaga w oszczędzaniu pamięci z powodu puli ciągów, używanej przez JVM. – Mirimas

+0

@Mirimas Nope. Mylisz się tutaj, koleś. Statyczny inicjowany jest tylko jeden raz, ale niestatyczna zmienna jest inicjowana za każdym razem, gdy inicjowany jest obiekt. –

+1

Tutaj użyto puli ciągów, ponieważ nie używasz "nowego" słowa kluczowego, aby utworzyć ciąg znaków. Tak więc, nawet jeśli nie używasz statycznego ciągu znaków, użyje on już utworzonego odwołania z puli ciągów. Zobacz więcej: http://stackoverflow.com/questions/3297867/difference-between-string-object-and-string-literal – Mirimas

Powiązane problemy