java - 如何教 findbugs 正确理解 IoC 字段?

标签 java findbugs

这是我的类(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/

相关文章:

java - 如何解决 findbug 问题 : Null passed for nonnull parameter

filter - FindBugs 是否可以有多个排除过滤器?

java - Findbugs 可能误报?

maven-2 - 嵌套 Maven 属性在引用 POM 时进行评估,而不是定义 POM

java - 在 Lambda 表达式中命名线程

java - Android 使用 Intent 来控制媒体播放器?

java - AmazonS3ClientBuilder 问题

java - 与 JMeter 相比,Blazemeter 结果是否正确?

java - Findbugs 使用 Lombok 构建器创建问题

Java:在父类(super class)构造函数中从子类调用的方法