这是我的类(class)(JAX-RS 注释):
@Path("/")
public class Foo {
@Context
private UriInfo uriInfo;
// ...
}
这就是findbugs说:
Unwritten field: com.XXX.Foo.uriInfo
没错,该字段是未写入的,但它是由 JAX-RS servlet 注入(inject)的。我认为我在这里做错了什么,但是如何解决这个问题?
最佳答案
到目前为止,我所了解的是 findbugs 是正确的。它告诉我这个变量不能从类的外部访问,并且我的注释在 OOP 方面是无效的。 JAX-RS servlet 必须打破字段访问限制才能注入(inject) UriInfo
。我必须给他这个领域的合法途径:
@Path("/")
public class Foo {
private UriInfo uriInfo;
@Context
public void setUriInfo(UriInfo info) {
this.uriInfo = info;
}
// ...
}
现在它对于 findbugs 和 OOP 设计范例都是正确的:)
关于java - 如何教 findbugs 正确理解 IoC 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4213556/