2017-02-11 6 views
0

java-graphql-annotationsフレームワークでリストフィールドを指定する方法を教えてください。 残念ながらリストフィールドの指定についてはdocumentationが見つかりませんでした。Java GraphQLアノテーション:リストフィールドを指定

この例では、エラーを生成します。

// 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] 
... 

答えて

0

方法はListのタイプ返さなければなりません:作成のいずれか、まあ

... 
@GraphQLField 
public List<Object> getList() { 
    return myValue; 
} 
... 
0

をリストを返し、fの上に@GraphQLDataFetcher(FetcherClass.class)アノテーションを付けてフィールドにバインドするdataFetcherクラスield(そしてメソッドが呼び出されることがないので、nullを返すことができます)、またはメソッド自体でリストを返すことができます。

ところで - 私はそれがワイルドカードで動作するとは思わないので、タイプを指定する必要があります

関連する問題