我在我的网络应用程序中将restygwt依赖从版本1.3更新到2.2.3。此升级破坏了我现有的代码。我在编译GWT Repository接口时遇到错误:[ERROR] Neither public argument id nor public getter getId found!
。
我在存储库的以下函数中发现错误的原因是@Attribute
注释。
@PUT
@Path("{id}")
void update(@PathParam("id") @Attribute("id") T object, MethodCallback<Void> callback);
object
是泛型类型T的对象,它是从其他超类DTO扩展的DTO。
超类DTO具有公共方法getId()
和私有属性id
。即使超类DTO中存在公共方法,我也不知道为什么编译器会出错。
注:
@Override public getId()
方法时,错误消失了。 (为什么会这样?超类已经有了相同的方法,那么为什么编译器无法找到它?)@Attribute("id")
更改为@Attribute("getId()")
也无效。=============================================== ====================
public abstract class AbstractDto implements Serializable {
private static final long serialVersionUID = 1L;
public String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
......
......
......
}
是超类DTO,数据(即object
函数的update()
参数)是由超类扩展的类。
答案 0 :(得分:0)
尝试在超类上使用df = df2.merge(df1, left_on=['access_date','user_id'], right_on=['day','u'])[df1.columns]
print (df)
day u a
0 2018-03-01 10405594 suggestion
- 注释。
将这样的内容添加到您的超级课程中:
JsonSubTypes
并将此注释添加到每个子类:
@JsonSubTypes({
@JsonSubTypes.Type(value = YourSubClass01.class, name = "YourSubClass01"),
@JsonSubTypes.Type(value = YourSubClass02.class, name = "YourSubClass02")
})
此处有更多信息:https://resty-gwt.github.io/documentation/restygwt-user-guide.html
希望有所帮助。