I know that you cannot create an array of a generic type, Instead you have to resort to a hack. (Given Java supports generic arrays, just not their creation, it is not clear to
Do the following:
@SuppressWarnings("unchecked") final Inner[] inners = (Inner[])new Outer>.Inner[16];
The equivalent to your first example would have been new Outer.Inner[16] but this will isolate the unchecked cast and avoid the raw type.
new Outer.Inner[16]