title: Initialize static final array with indexes
body: <p>I want to initialize a multidimensional private static final array of ints, indexing the values.</p>
  
  <pre><code>private static final int[][] a = { {0,0,0}, {1,2,3} };
  </code></pre>
  
  <p>This is NOT good for me.
  I found somewhere this weird syntax that I tried, but does not want to compile in anyway. I add it to clarify what I need:</p>
  
  <pre><code>private static final int[][] a;
  private static {
      a = new int[NUM_TYPES][3];
      a [TYPE_EMPTY]  =   { 0, 0, 0 };
      a [TYPE_NORMAL] =   { 1, 2, 3 };
      };
  </code></pre>
  
  <p>The difference is that now I should have a[TYPE_EMPTY] and a[TYPE_NORMAL] instead of a[0] and a[1]. On the practical side it's the same, but the second one makes much more clear, error-free and maintainable the source.</p>
  
  <p>For example, should I add a new TYPE in future, I would not need to care what numerical index would have inside the array.</p>
  
  <p>As I said, I did not find any correct syntax to do that, and the above syntax is completely wrong.
  Would some Java expert give me a short lesson? :)
  Thank you very much.</p>