DBusConnection.getJavaType(sig.substring(1), vt, 2);
Marshalling.getJavaType(sig.substring(1), vt, 2);
   public MapContainer(Object[][] content, String sig) throws DBusException   {      Class[] cs = new Class[2];      try {         Vector<Type> vt = new Vector<Type>();         DBusConnection.getJavaType(sig.substring(1), vt, 2);         if (vt.get(0) instanceof ParameterizedType)            cs[0] = (Class) ((ParameterizedType) vt.get(0)).getRawType();         else            cs[0] = (Class) vt.get(0);         this.keys = (Object[]) Array.newInstance(cs[0], content.length);         if (vt.get(1) instanceof ParameterizedType)            cs[1] = (Class) ((ParameterizedType) vt.get(1)).getRawType();         else            cs[1] = (Class) vt.get(1);         if (Map.class.isAssignableFrom(cs[1]))             cs[1] = MapContainer.class;         if (List.class.isAssignableFrom(cs[1]))             cs[1] = ListContainer.class;         this.values = (Object[]) Array.newInstance(cs[1], content.length);      } catch (Exception CNFe) {         if (DBusConnection.EXCEPTION_DEBUG) CNFe.printStackTrace();         throw new DBusException("Map contains invalid type: "+CNFe.getMessage());      }      this.sig = sig;      for (int i = 0; i < content.length; i++) {         this.keys[i] = content[i][0];         this.values[i] = content[i][1];      }   }