アップグレードされたJavaライブラリへの1.19.0、およびユーザーモデルの戻り型はすべて異なります
-
26-12-2019 - |
質問
ここからディレクトリAPIのJavaクライアントライブラリを使用しています。 https://developers.google.com/api-client-library./ java / API / 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はオブジェクトを返しています。備え、電話などのための同じ取引...これらすべて検査の上に見えるオブジェクトを返します。
List<ArrayMap<String, String>>
.
ArrayMapはGenericjsonを拡張します。
useraddressに乗るために何をしなければならないのですか、それから以前のバージョンに戻るのは何ですか?
解決
最新のバージョンの(私の見解から)バグです。1.16,1.17、または最初の1.18(最新の1.18もバグを持っている)のような古いものを使用してください。
他のヒント
同じことが起こったC#クライアントと2015年5月のGoogle開発者 Eric Koleda 答えた:
バックエンドへの変更は、サービスの発見文書を変更するという意図しない結果があり、アドレスフィールド(およびその他)がtype= anyとしてマークされています。これにより、見つかったように.NETのような強く型言語に問題が発生します。チームは問題を認識していますが、修正が利用可能になると不明瞭です。
しかしC#クライアントはまだこの問題を抱えているので、私はJavaクライアントも同様にしています。
これは、Javaクライアントでこの問題のために特にこの問題のために、Googleの問題トラッカーで見つかったいくつかの問題ですが、まだ進捗を見たこともありません。