我正在从Android应用程序+ GraphQL项目中的schema.json生成代码。最后,我将文件放在正确的目录中并创建类。在一种生成的方法中,我收到此错误:
error: method does not override or implement a method from a supertype
error: <anonymous com.example.Query$Data$1$1> is not abstract and does not override abstract method write(Object,ListItemWriter) in ListWriter
我没有找到用于此问题的解决方案,也无法手动更改该代码来解决它,因为在进行了一些更改之后,当我开始新的项目构建/运行时,代码中的最新更改正在删除并且旧版本(自动生成)正在替换它们。
我的方法:
public ResponseFieldMarshaller marshaller() {
return new ResponseFieldMarshaller() {
@Override
public void marshal(ResponseWriter writer) {
writer.writeList($responseFields[0], findAllUsers, new ResponseWriter.ListWriter() {
@Override
public void write(List items, ResponseWriter.ListItemWriter listItemWriter) {
for (Object item : items) {
listItemWriter.writeObject(((FindAllUser) item).marshaller());
}
}
});
}
};
}
文档:
interface ListWriter<T> {
void write(@Nullable List<T> items, @NotNull ListItemWriter listItemWriter);
}
项目依赖项:
classpath 'com.apollographql.apollo:apollo-gradle-plugin:1.0.1-SNAPSHOT'
并添加到buildscript:
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
在应用级别上,我添加:
apply plugin: 'com.apollographql.android'
以及依赖项:
implementation 'com.apollographql.apollo:apollo-runtime:0.5.0'
因此使用文档看起来很正确,我不知道问题出在哪里。
我的.graphql文件包含:
query Query {
findAllUsers {
username
email
}
}