错误:注释类型声明中的元素无法声明形式参数

时间:2018-08-16 12:50:30

标签: android interface compiler-errors rx-java retrofit2

我是android开发的业余爱好者。我正在尝试在Android项目中使用翻新和rxjava将数据发布/发送到服务器。我正在关注这个link

但是在代码的接口部分,我遇到2个编译器错误,并且代码无法编译。

error: elements in annotation type declarations cannot declare formal parameters
error: invalid type for element {0} of annotation type

接口看起来像给定的链接。不过,我只是将其发布。

public @interface APIService {

@POST("/posts")
@FormUrlEncoded
Observable<Post> savePost(@Field("title") String title,
                             @Field("body") String body,
                             @Field("userId") long userId);
}

我这样称呼它:

mAPIService.savePost(title, body,1).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())

其中private APIService mAPIService;

邮政模型如下:

public class Post {

@SerializedName("title")
@Expose
private String title;
@SerializedName("body")
@Expose
private String body;
@SerializedName("userId")
@Expose
private Integer userId;
@SerializedName("id")
@Expose
private Integer id;

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getBody() {
    return body;
}

public void setBody(String body) {
    this.body = body;
}

public Integer getUserId() {
    return userId;
}

public void setUserId(Integer userId) {
    this.userId = userId;
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

@Override
public String toString() {
    return "Post{" +
            "title='" + title + '\'' +
            ", body='" + body + '\'' +
            ", userId=" + userId +
            ", id=" + id +
            '}';
   }
}

为什么会出现此错误?怎么回事?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

此问题的解决方案在于@interface。如果您遵循this,那么您会发现必须将其替换为简单的interface