我有这种类型的列表(地址是我的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
内的任何字段也是输入对象类型,则需要以类似的方式构建它们。