Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Fields declared static final are also safe for multithreaded use; see guideline TSM03-J. Do not publish partially initialized objects. However, remember that simply changing the modifier to final may not prevent attackers from indirectly retrieving an incorrect value from the static final variable before its initialization; see guideline DCL12-J. Prevent class initialization cycles for more information. Further, individual members of the referenced object can also be changed if the object itself is mutable; see guideline OBJ01-J. Do not assume that declaring a final reference to be final causes makes the referenced object to be immutable.

It is also permissible to use a wrapper method to retrieve the value of m_functions. This has encapsulation advantages as it restricts its accessibility of m_functions to be private; see guideline OBJ00-J. Declare data members as private and provide accessible wrapper methods.

...