La biblioteca Java actualizada a 1.19.0 y los tipos de devolución del modelo de usuario son todos diferentes

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

  •  26-12-2019
  •  | 
  •  

Pregunta

Estoy usando la biblioteca cliente Java para Directory API desde aquí:https://developers.google.com/api-client-library/java/apis/admin/directory_v1

El modelo com.google.api.services.admin.directory.model.User ha cambiado de 1.16 a 1.19.

En la versión anterior solía poder hacer esto:

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

Pero ahora user.getAddresses devuelve un objeto.Mismo trato para getOrganizations, teléfonos, etc.Todos estos devuelven un Objeto que, tras una inspección más detallada, se ve así:

List<ArrayMap<String, String>>

ArrayMap extiende GenericJson.

¿Qué tengo que hacer para llegar a la dirección de usuario, aparte de volver a la versión anterior?

¿Fue útil?

Solución

Es un error (desde mi punto de vista) en las últimas versiones.Use un más viejo como 1.16, 1.17 o el primer 1.18 (último 1.18 también tiene el error).

Otros consejos

Lo mismo sucedió en el cliente C#. y en mayo de 2015, un desarrollador de Google llamado Eric Koleda respondió:

Un cambio en el backend tuvo la consecuencia no deseada de cambiar el documento de descubrimiento del servicio, lo que hizo que el campo de direcciones (y otros) se marcara como tipo=cualquiera.Esto causa problemas para lenguajes fuertemente tipificados como .NET, como habrá descubierto.El equipo está al tanto del problema, pero no está claro cuándo estará disponible una solución.

Sin embargo, el cliente C# todavía tiene este problema, por lo que supongo que el cliente Java también lo tiene.

Aquí hay un par de problemas que encontré en el rastreador de problemas de Google específicamente para este problema en el cliente Java, pero ninguno ha visto ningún progreso todavía:

  • Número 3645:Generador de código roto para Directory API en el cliente Java:Clase de usuario que carece de tipos explícitos
  • Número 3730:La última versión del cliente Directory API devuelve un objeto en lugar de la clase correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top