Java 创建一个列表<;A>;作为GraphQLObjectType

Java 创建一个列表<;A>;作为GraphQLObjectType,java,graphql-java,Java,Graphql Java,我想从GraphQLDatafetcher返回类a对象的列表。我知道我可以像这样返回单个a: GraphQLObjectType a = GraphQLAnnotations.object(A.class); ... GraphQLFieldDefinition.newFieldDefinition().type(a); // omitted boilerplate from query object GraphQLObjectType aList = GraphQLAnnotations.o

我想从GraphQLDatafetcher返回类
a
对象的列表。我知道我可以像这样返回单个
a

GraphQLObjectType a = GraphQLAnnotations.object(A.class);
...
GraphQLFieldDefinition.newFieldDefinition().type(a); // omitted boilerplate from query object
GraphQLObjectType aList = GraphQLAnnotations.object(List.class);
...
GraphQLFieldDefinition.newFieldDefinition().type(aList); // omitted 
@GraphQLType
public class A {...}
现在,我想返回
a
的列表,所以我尝试了如下方法:

GraphQLObjectType a = GraphQLAnnotations.object(A.class);
...
GraphQLFieldDefinition.newFieldDefinition().type(a); // omitted boilerplate from query object
GraphQLObjectType aList = GraphQLAnnotations.object(List.class);
...
GraphQLFieldDefinition.newFieldDefinition().type(aList); // omitted 
@GraphQLType
public class A {...}
这是:

GraphQLObjectType aList = GraphQLAnnotations.object(new GraphQLList(A.class));
...
GraphQLFieldDefinition.newFieldDefinition().type(aList); // omitted 
A
的注释如下:

GraphQLObjectType a = GraphQLAnnotations.object(A.class);
...
GraphQLFieldDefinition.newFieldDefinition().type(a); // omitted boilerplate from query object
GraphQLObjectType aList = GraphQLAnnotations.object(List.class);
...
GraphQLFieldDefinition.newFieldDefinition().type(aList); // omitted 
@GraphQLType
public class A {...}

第一次尝试返回null,第二次尝试未使用
编译GraphQList无法应用于java.lang.Class 2.3.0?

我相信您需要执行以下操作:


GraphQLFieldDefinition.newFieldDefinition().type(新的graphqlist(A))

列表类型不是对象类型的子类型,因此不能创建表示列表的对象类型。不过,这两种类型都是输出类型(列表也是输入类型)。这应该是你需要的

GraphQLObjectType a = GraphQLAnnotations.object(A.class);
GraphQLOutputType listOfA = new GraphQLList(a);
然后,您可以使用此类型作为字段类型,就像使用
GraphQLObjectType
一样:

GraphQLFieldDefinition.newFieldDefinition().type(listOfA);

谢谢你。我很好奇如何得到变量
typeRepresentingA
?我试图实现一个
GraphQLType
并在
getName()
方法中返回
a.class.getName()
。@span但是。。。你已经有了。我修改了我的例子。我不太熟悉graphql java注释,所以我只是复制了你的代码。啊,我明白了!美好的