Piszę pewną aplikację używając swinga. W głównej klasie GeneratorFrame chciałbym ustalić domyślny font, background i foreground. Pierwszym moim pomysłem było po prostu:
private static final Font FONT = ...;
Problem pojawił się, gdy jednak zachciałem użyć jakieś specjalnej czcionki, którą musiałbym wczytać z pliku. Przez to automatycznie nie mogę używać stałej statycznej, gdyż FONT mogę dopiero wczytać w konstruktorze. Mam więc coś takiego:
private final Font FONT;
public GeneratorFrame()
{
FONT = ...;
}
I tu się pojawiają moje pytania. Czy zostawić private i zrobić gettera do stałej FONT, i wszędzie w innych klasach pisać
setFont(generatorFrame.getFONT());
czy może ustawić ją jako publiczną i po prostu odwoływać się do niej generatorFrame.FONT;
? - skoro jest finalna, to i tak nie można zmienić jej wartości.
Przy okazji, stałe statyczne zapisujemy W_TEN_SPOSÓB
; rozumiem, że po prostu stałe (bez static) też?
Drugie pytanie nieco podobne:
Z pliku wczytuje opis armii. Jest on stały dla danej frakcji i postanowiłem użyć do tego hashmapy (nick, postać):
Map<String, UnitModel> army = HashMap<>();
Czy taka mapa również powinna być zapisana jako finalna i mieć nazwę ARMY
? Co to znaczy finalna mapa? Że nie mogę jej ponownie zainicjować, ale elementy mogę dokładać i wyrzucać do woli, tak? Więc jest tak czy inaczej sens robić ją finalną?
Z góry dziękuję za rozwianie moich wątpliwości.
`dodanie znaczników i ```
- @furious programming