Jonas Maebe - 2011-05-17

"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".