【问题标题】:Upgraded java library to 1.19.0 and User model return types are all differentjava 库升级到 1.19.0 和用户模型返回类型都不同
【发布时间】:2014-09-23 23:08:01
【问题描述】:

我正在从这里为 Directory API 使用 Java 客户端库: https://developers.google.com/api-client-library/java/apis/admin/directory_v1

com.google.api.services.admin.directory.model.User 模型已从 1.16 更改为 1.19。

在旧版本中我曾经能够做到这一点:

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

但现在 user.getAddresses 返回一个对象。 getOrganizations、电话等的处理相同......这些都返回一个对象,在进一步检查后看起来像:

List<ArrayMap<String, String>>

ArrayMap 扩展了 GenericJson。

除了回到以前的版本之外,我还需要做什么才能获得 UserAddress?

【问题讨论】:

    标签: google-admin-sdk


    【解决方案1】:

    这是最新版本中的一个错误(从我的角度来看)。使用较旧的版本,例如 1.16、1.17 或第一个 1.18(最新的 1.18 也有错误)。

    【讨论】:

    • 我从 1.18.0 的 rev32 开始,一直努力找到最新的工作版本,即:directory_v1-rev34-1.18.0-rc
    【解决方案2】:

    The same thing happened in the C# client 早在 2015 年 5 月,一位名叫 Eric Koleda 的 Google 开发人员回复说:

    对后端的更改会带来意想不到的后果,即更改服务的发现文档,使地址字段(和其他字段)被标记为 type=any。正如您所发现的,这会导致强类型语言(如 .NET)出现问题。团队已意识到该问题,但尚不清楚何时可以修复。

    但是 C# 客户端仍然有这个问题,所以我假设 Java 客户端也有这个问题。

    以下是我在 Google 的问题跟踪器中发现的几个问题,专门针对 Java 客户端中的这个问题,但都没有看到任何进展:

    • Issue 3645:Java 客户端中目录 API 的代码生成器损坏:用户类缺少显式类型
    • Issue 3730:最新版本的 Directory API 客户端返回 Object 而不是正确的类

    【讨论】:

      猜你喜欢
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-20
      相关资源
      最近更新 更多