如何在java-graphql-annotations框架中指定List Field? 很遗憾,我找不到关于指定列表字段的任何documentation。
此示例产生错误:
// Bean class
public class MyBean {
@GraphQLField
public List<?> getList() {
return null;
}
}
// instantiate object type
GraphQLAnnotations.object(MyBean.class);
异常Stacktrace:
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]
...
答案 0 :(得分:0)
该方法必须返回List for List:
...
@GraphQLField
public List<Object> getList() {
return myValue;
}
...
答案 1 :(得分:0)
好吧,您要么创建一个返回列表的dataFetcher类,并将其绑定到字段上方带有@GraphQLDataFetcher(FetcherClass.class)
注释的字段(然后该方法永远不会被调用,因此您可以返回null),或者您可以返回方法本身的列表。
顺便说一下 - 我认为它不能用于通配符,你必须指定一个类型