if (DBusConnection.EXCEPTION_DEBUG) e.printStackTrace();
   private void setup() throws DBusException   {      Field[] fs = getClass().getDeclaredFields();      Object[] args = new Object[fs.length];      Type[] ts = new Type[fs.length];      int diff = 0;      for (Field f : fs) {         Position p = f.getAnnotation(Position.class);         if (null == p) {            diff++;            continue;         }         ts[p.value()] = f.getGenericType();         try {            args[p.value()] = DBusConnection.convertParameters(                  new Object[] { f.get(this) },                  new Type[] { ts[p.value()] })[0];         } catch (Exception e) {            throw new DBusException(e.getMessage());         }      }               sig = "";      for (Type t: ts)         if (null != t)            for (String s: DBusConnection.getDBusType(t))               sig += s;      this.parameters = new Object[args.length - diff];      for (int i = 0; i < parameters.length; i++)         parameters[i] = args[i];   }