这是我的课程(JAX-RS注释):
@Path("/")
public class Foo {
@Context
private UriInfo uriInfo;
// ...
}
这是findbugs所说的:
Unwritten field: com.XXX.Foo.uriInfo
确实,该字段是不成文的,但它是由JAX-RS servlet注入的。我认为我在这里做错了,但是如何解决这个问题?
答案 0 :(得分:3)
到目前为止我所了解的是,findbugs是对的。它告诉我这个变量不能从类的外部访问,并且我的注释在OOP方面无效。 JAX-RS servlet必须打破字段访问限制才能注入UriInfo
。我必须给他一个合法的方式来这个领域:
@Path("/")
public class Foo {
private UriInfo uriInfo;
@Context
public void setUriInfo(UriInfo info) {
this.uriInfo = info;
}
// ...
}
现在它对于findbugs和OOP设计范例是正确的:)