public class GenericGenericMemberClass { // this line never causes a problem GenericClass [] genericMemberArray; // this line causes compilation errors to be introduced GenericClass< GenericClass >[] genericGenericMemberArray; // uncommenting the following lines removes the compilation errors (very unexpectedly, for me at least) // @SuppressWarnings("unused") // private static final GenericClass< GenericClass > genericGenericMember = null; public void test() { } }