6 Stimmen

Wie kann man FindBugs beibringen, IoC-Felder richtig zu verstehen?

Dies ist meine Klasse (JAX-RS annotiert):

@Path("/")
public class Foo {
  @Context
  private UriInfo uriInfo;
  // ...
}

Das sagt findbugs:

Unbeschriebenes Feld: com.XXX.Foo.uriInfo

Es ist wahr, das Feld ist unbeschrieben, aber es wird vom JAX-RS Servlet injiziert. Ich denke, hier mache ich etwas falsch, aber wie löse ich das Problem?

3voto

yegor256 Punkte 96888

Was ich bisher verstanden habe, ist, dass FindBugs recht hat. Es sagt mir, dass diese Variable von außerhalb der Klasse nicht zugänglich ist und meine Annotation in Bezug auf OOP ungültig ist. Das JAX-RS-Servlet muss Zugriffsbeschränkungen für Felder brechen, um UriInfo einzufügen. Ich muss ihm einen legalen Weg zu diesem Feld geben:

@Path("/")
public class Foo {
  private UriInfo uriInfo;
  @Context
  public void setUriInfo(UriInfo info) {
    this.uriInfo = info;
  }
  // ...
}

Jetzt ist es richtig für FindBugs und für das OOP-Design-Paradigma :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X