diff --git a/thrifty-schema/src/main/java/com/bendb/thrifty/schema/Field.java b/thrifty-schema/src/main/java/com/bendb/thrifty/schema/Field.java
index <HASH>..<HASH> 100644
--- a/thrifty-schema/src/main/java/com/bendb/thrifty/schema/Field.java
+++ b/thrifty-schema/src/main/java/com/bendb/thrifty/schema/Field.java
@@ -9,6 +9,8 @@ public final class Field {
     private final FieldElement element;
     private ThriftType type;
 
+    private transient String javaName;
+
     Field(FieldElement element) {
         this.element = element;
     }
@@ -24,7 +26,14 @@ public final class Field {
     }
 
     public String name() {
-        return element.name();
+        if (javaName == null) {
+            String name = element.name();
+            if (Character.isUpperCase(name.charAt(0))) {
+                name = Character.toLowerCase(name.charAt(0)) + name.substring(1);
+            }
+            javaName = name;
+        }
+        return javaName;
     }
 
     public boolean required() {
Generate lower-cased field names by default.

This is for internal expediency, and is in anticipation of the compiler
switch planned in issue #<I>.