Môj kód momentálne trpí „Možným nebezpečným priradením k nefinálnemu statickému poľu v konštruktore“ (AssignmentToNonFinalStatic v PMD).
Trieda je napísaná ako samostatná trieda, vlastnosť ovplyvnená týmto varovaním vyzerá takto
súkromný statický reťazec myProperty;
a je vyplnený týmto konštruktom:
public SystemPropertyUtils() throws ConfigException {
someMethodThrowingConfigException();
myProperty = "someValue" + this.someOtherValueFromAThreadSafeString;
}
Existuje prepracovaný spôsob, ako toto varovanie vyvrátiť?
odpovede:
4 pre odpoveď č. 1Nenastavujte v konštruktore statické polia. V takom prípade urobte pole nestatické.
Inak by som musel mať podozrenie, že nepotrebujete konštruktor. Namiesto toho môžete inicializovať statické pole v statickom inicializačnom bloku alebo statickou metódou.