code: private Field locateFieldByReflection(Class<?> clazz, String typeWanted, boolean isInterface, String name) {
  		if (clazz.getName().equals(typeWanted)) {
  			Field[] fs = clazz.getDeclaredFields();
  			if (fs != null) {
  				for (Field f : fs) {
  					if (f.getName().equals(name)) {
  						return f;
  					}
  				}
  			}
  		}
  		// Check interfaces
  		if (!isInterface) { // not worth looking!
  			Class<?>[] interfaces = clazz.getInterfaces();
  			if (interfaces != null) {
  				for (Class<?> intface : interfaces) {
  					Field f = locateFieldByReflection(intface, typeWanted, isInterface, name);
  					if (f != null) {
  						return f;
  					}
  				}
  			}
  		}
  		// Check superclass
  		Class<?> superclass = clazz.getSuperclass();
  		if (superclass == null) {
  			return null;
  		}
  		else {
  			return locateFieldByReflection(superclass, typeWanted, isInterface, name);
  		}
  	}
docs: Discover the named field in the hierarchy using the standard rules of resolution.
  
  @param clazz the class upon which to start looking
  @param typeWanted where the field is!
  @param name the name of the field to find
  @return the jlrField object representing that field, or null if not found