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