Using the word new as a field name causes the parse to
give up... it would be very useful if it accepted this
as it accepts almost every other java reserved word.
"new" is forbidden as field name by the JVM specs. They state that you cannot use any Java keywords as identifier, and "new" is a Java keyword.
See http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#2877 : "... The constant_pool entry at that index must be a CONSTANT_Utf8_info (§4.4.7) structure which must represent a valid field name (§2.7) stored as a simple name (§2.7.1), that is, as a Java programming language identifier (§2.2)."
"Java programming language identifier (§2.2)" is defined as: " ... An identifier must not be the same as a boolean literal (§2.3), the null literal (§2.3), or a keyword in the Java programming language."
"new" is forbidden as field name by the JVM specs. They state that you cannot use any Java keywords as identifier, and "new" is a Java keyword.
See http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#2877 : "... The constant_pool entry at that index must be a CONSTANT_Utf8_info (§4.4.7) structure which must represent a valid field name (§2.7) stored as a simple name (§2.7.1), that is, as a Java programming language identifier (§2.2)."
"Java programming language identifier (§2.2)" is defined as: " ... An identifier must not be the same as a boolean literal (§2.3), the null literal (§2.3), or a keyword in the Java programming language."
See http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html for the list of keywords, which includes "new".