Jeff --
setXXX() methods are a
convention, and in no way, shape, or form are they ever called automatically by any part of
Java, nor are they absolutely tied, explicitly or implicitly, to any instance variable by name or by any other criterion. There is absolutely nothing to keep you from writing
If you set a field via reflection, then the value of the field is set directly. The Reflection API doesn't consider for a moment the existence of any setXXX methods.
Anyway, if you want to call setXXX(), then you actually have two choices. You can use java.lang.reflect.Method, not java.lang.reflect.Field; then you'd have to look up the setXXX() methods specifically.
Alternatively, you seem to want to treat the class like a JavaBean -- a class for which setXXX() and getXXX() methods are specifically intended,
by convention to represent properties that you can set and read by calling them. If that's always going to be the case, then instead of using reflection directly, you want to use the java.beans.Introspector class and its associated machinery, which will find all the set/getXXX methods of a class and present them to you in a convenient format for use.