System.out.println(object + "." + prop);
  public static void GetSetProp    (Object object, String prop, Object args[], long result)  {    try {      for (Class jclass = object.getClass();;jclass=(Class)object) {        while (!Modifier.isPublic(jclass.getModifiers())) {          // OK, some joker gave us an instance of a non-public class          // Substitute the first public interface in its place,          // and barring that, try the superclass          Class interfaces[] = jclass.getInterfaces();          jclass=jclass.getSuperclass();          for (int i=interfaces.length; i-->0;) {            if (Modifier.isPublic(interfaces[i].getModifiers())) {              jclass=interfaces[i];            }          }        }        BeanInfo beanInfo = Introspector.getBeanInfo(jclass);        PropertyDescriptor props[] = beanInfo.getPropertyDescriptors();        for (int i=0; i<props.length; i++) {          if (props[i].getName().equalsIgnoreCase(prop)) {            Method method;            if (args!=null && args.length>0) {              method=props[i].getWriteMethod();              args = coerce(method.getParameterTypes(), args);            } else {              method=props[i].getReadMethod();            }            setResult(result, method.invoke(object, args));            return;          }        }        Field jfields[] = jclass.getFields();        for (int i=0; i<jfields.length; i++) {          if (jfields[i].getName().equalsIgnoreCase(prop)) {            if (args!=null && args.length>0) {              args = coerce(new Class[] {jfields[i].getType()}, args);              jfields[i].set(object, args[0]);            } else {              setResult(result, jfields[i].get(object));            }            return;          }        }        // try a second time with the object itself, if it is of type Class        if (!(object instanceof Class) || (jclass==object)) break;      }    } catch (Exception e) {      setException(result, e);    }  }