La libreria Java aggiornata alla versione 1.19.0 e i tipi restituiti del modello utente sono tutti diversi

StackOverflow https://stackoverflow.com//questions/25068485

  •  26-12-2019
  •  | 
  •  

Domanda

Sto utilizzando la libreria client Java per l'API Directory da qui:https://developers.google.com/api-client-library/java/apis/admin/directory_v1

Il modello com.google.api.services.admin.directory.model.User è stato modificato da 1.16 a 1.19.

Nella vecchia versione ero in grado di fare questo:

List<UserAddress> userAddressList = user.getAddresses();
for(UserAddress userAddress : userAddressList) {
    ///
}

Ma ora user.getAddresses restituisce un oggetto.Stesso accordo per getOrganizations, telefoni, ecc...Tutti questi restituiscono un oggetto che dopo un'ulteriore ispezione assomiglia a:

List<ArrayMap<String, String>>

ArrayMap estende GenericJson.

Cosa devo fare per arrivare a UserAddress, oltre a tornare alla versione precedente?

È stato utile?

Soluzione

È un bug (dal mio punto di vista) nelle ultime versioni.Utilizzare un precedente come 1.16, 1.17 o il primo 1.18 (Ultimo 1.18 ha anche il bug).

Altri suggerimenti

La stessa cosa è successa nel client C# e nel maggio 2015 uno sviluppatore di Google di nome Eric Koleda rispose:

Una modifica al backend ha avuto la conseguenza involontaria di modificare il documento di rilevamento per il servizio, facendo sì che il campo degli indirizzi (e altri) venisse contrassegnato come type=any.Ciò causa problemi per linguaggi con tipi forti come .NET, come hai scoperto.Il team è a conoscenza del problema ma non è chiaro quando sarà disponibile una soluzione.

Tuttavia, il client C# presenta ancora questo problema, quindi suppongo che lo faccia anche il client Java.

Ecco un paio di problemi che ho riscontrato nel tracker dei problemi di Google specifici per questo problema nel client Java, ma nessuno dei due ha ancora riscontrato alcun progresso:

  • Numero 3645:Generatore di codice non funzionante per l'API Directory nel client Java:Classe utente priva di tipi espliciti
  • Numero 3730:L'ultima versione del client API Directory restituisce Object anziché la classe corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top