我有这种类型的列表(地址是我的java类):

List<Address> addresses = new ArrayList<>();

public class Address {
...
}


我必须执行这种类型的请求:

apolloClient = ApolloClient.builder()
        .serverUrl(mContext.getString(R.string.graphqlUrl))
        .okHttpClient(okHttpClient)
        .addCustomTypeAdapter(CustomType.LISTOFMAPTOOBJECT, new AddressCustomTypeAdapter().customTypeAdapter())
        .build();

apolloClient.mutate(
        UpdateProfileAddressesMutation.builder()
                .addresses(?)
                .build()
).enqueue(new ApolloCall.Callback<UpdateProfileAddressesMutation.Data>() {
...
});


但是我不知道要作为.addresses(?)中的参数发送什么。此方法要求我发送AddressInput的ArrayList,它是自动生成的graphql类。

public final class AddressInput implements InputType { ... }


如何在AddressInput中转换我的地址?

如果我尝试类似

AddressInput ad = new AddressInput();


我遇到以下错误“无法从外部包访问”

最佳答案

生成的输入类型具有一个可用于实例化它的生成器方法,因此您的代码将类似于:

// Java
AddressInput address = AddressInput
  .builder()
  .city("San Francisco")
  .state("CA")
  .build();

// Kotlin
val address = AddressInput
  .builder()
  .city("San Francisco")
  .state("CA")
  .build()


如果AddressInput内的任何字段也是输入对象类型,则需要以类似的方式构建它们。

08-07 14:12