Lombok: Warnung vor ungeprüfter Besetzung in Java

Erstellt am 5. Jan. 2016  ·  3Kommentare  ·  Quelle: projectlombok/lombok

Dieser Code erzeugt eine Warnung, wenn er mit javac kompiliert wird:

public class WarningDemo {
    List<Integer> makeList() {
        return null;
    }

    @Getter(lazy=true) private final List<Integer> list = makeList();
}

Mit -Xlint bekomme ich

src/WarningDemo.java:10: warning: [unchecked] unchecked cast
    @Getter(lazy=true) private final List<Integer> list = makeList();
    ^
  required: List<Integer>
  found:    Object

Der deomboked Code hat @java.lang.SuppressWarnings("all") , aber entweder hilft es nicht oder die Kompilierung funktioniert anders.

Hilfreichster Kommentar

Das hilft zwar, aber

 @Getter(lazy = true, onMethod = @__({@SuppressWarnings("all")}))

nicht. "alle" bedeutet also gar nicht "alle". Auch das hilft:

 @Getter(lazy = true, onMethod = @__({@SuppressWarnings({"unchecked", "all"})}))

Alle 3 Kommentare

So haben wir das gelöst:

@Getter(lazy = true, onMethod = @__({@SuppressWarnings("unchecked")}))

Das hilft zwar, aber

 @Getter(lazy = true, onMethod = @__({@SuppressWarnings("all")}))

nicht. "alle" bedeutet also gar nicht "alle". Auch das hilft:

 @Getter(lazy = true, onMethod = @__({@SuppressWarnings({"unchecked", "all"})}))
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen