0

如何在 java-graphql-annotations 框架中指定列表字段?不幸的是,我找不到任何有关指定列表字段的文档。

此示例产生错误:

// Bean class
public class MyBean {    
  @GraphQLField
  public List<?> getList() {
    return null;
  }      
}

// instantiate object type
GraphQLAnnotations.object(MyBean.class);

异常堆栈跟踪:

java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.WildcardTypeImpl cannot be cast to java.lang.Class
at graphql.annotations.DefaultTypeFunction$ListFunction.apply(DefaultTypeFunction.java:133) ~[graphql-java-annotations-0.13.1.jar:na]
at graphql.annotations.DefaultTypeFunction$ListFunction.apply(DefaultTypeFunction.java:120) ~[graphql-java-annotations-0.13.1.jar:na]
at graphql.annotations.DefaultTypeFunction.apply(DefaultTypeFunction.java:304) ~[graphql-java-annotations-0.13.1.jar:na]
at graphql.annotations.DefaultTypeFunction.apply(DefaultTypeFunction.java:37) ~[graphql-java-annotations-0.13.1.jar:na]
at graphql.annotations.GraphQLAnnotations.getField(GraphQLAnnotations.java:391) ~[graphql-java-annotations-0.13.1.jar:na]
at graphql.annotations.GraphQLAnnotations.getObjectBuilder(GraphQLAnnotations.java:208) ~[graphql-java-annotations-0.13.1.jar:na]
at graphql.annotations.GraphQLAnnotations.getObject(GraphQLAnnotations.java:167) ~[graphql-java-annotations-0.13.1.jar:na]
at graphql.annotations.GraphQLAnnotations.object(GraphQLAnnotations.java:173) ~[graphql-java-annotations-0.13.1.jar:na]
...
4

2 回答 2

0

好吧,您要么创建一个返回列表的 dataFetcher 类,并将其绑定到字段@GraphQLDataFetcher(FetcherClass.class)上方带有注释的字段(然后永远不会调用该方法,因此您可以返回 null),或者您可以在方法本身中返回列表。

顺便说一句-我认为它不能与通配符一起使用,您必须指定一个类型

于 2017-11-03T15:58:48.613 回答
0

该方法必须返回 List 的类型:

...
@GraphQLField
public List<Object> getList() {
  return myValue;
}
...
于 2017-02-11T13:02:15.243 回答