When you use static initialization, you give up any explicit control over the order of initialization. If things work, it's for one of the following reasons:
the static initialization only involves constant expressions.
you've carefully read the language specification, and have concluded that the initialization is guaranteed to work correctly.
things just ...