Photo by AbsolutVision on Unsplash

Just a quick note to talk about a pattern to lazy load constants (similar to an old question in Stackoverflow).

Sometimes you have a class full of constants and some of those are resource intensive (CPU or memory).

Lazy load those constants:

public static final Map<String, String> ISO_TO_SYMBOL {
get {
if (ISO_TO_SYMBOL == null) {
ISO_TO_SYMBOL = new Map<String, String>{
'USD' => '$',
'CAD' => '$',
'EUR' => '€',
'GBP' => '£',
'JPY' => '¥',
'KRW' => '₩',
'CNY' => '元'
};
}
return ISO_TO_SYMBOL;
}
set;
}
  1. Assure the static instance is never changed: constant.
  2. Load the map only if requested: lazy load.
  1. More convoluted code.

Is this a supported pattern or just a corner case? Asking because have not found an example online.

I’m a Software Engineer working with Salesforce Lightning Platform @ClaimVantage.

I’m a Software Engineer working with Salesforce Lightning Platform @ClaimVantage.