frankmusolf
2006-09-09 07:43:44 UTC
habe neulich entdeckt, dass findbugs die möglichkeit bietet, mit
annotations quasi design by contract bedingungen zu formulieren.
man bindet einfach die annotations.jar aus findbugs in sein projekt ein
und kann nun z.b. schreiben:
@NonNull String a(@NonNull String b)
{
return "abc";
}
die methode a darf nun nicht mit einem null-parameter aufgerufen
werden.
wenn man diese methode nun mit b = null aufruft, erzeugt findbugs nach
der compilierung eine fehlermeldung. also nicht erst zur laufzeit,
sondern schon während des entwickelns. auch wenn die methode anstatt
"abc" aus irgendeinem grund null zurückgeben würde, schimpft findbugs
sofort und ich sehe in eclipse gleich eine warnung.
es sind noch eine ganze menge mehr annotations möglich, z.b.
@CheckForReturn zum vorgeben, dass der rückkehrwert einer funktion
nicht ignoriert werden darf.
eine ähnliche technik gibt es wohl auch bei intellij. nur mit der
findbugs-lösung geht es auch in eclipse.
viel spass beim ausprobieren
frank
annotations quasi design by contract bedingungen zu formulieren.
man bindet einfach die annotations.jar aus findbugs in sein projekt ein
und kann nun z.b. schreiben:
@NonNull String a(@NonNull String b)
{
return "abc";
}
die methode a darf nun nicht mit einem null-parameter aufgerufen
werden.
wenn man diese methode nun mit b = null aufruft, erzeugt findbugs nach
der compilierung eine fehlermeldung. also nicht erst zur laufzeit,
sondern schon während des entwickelns. auch wenn die methode anstatt
"abc" aus irgendeinem grund null zurückgeben würde, schimpft findbugs
sofort und ich sehe in eclipse gleich eine warnung.
es sind noch eine ganze menge mehr annotations möglich, z.b.
@CheckForReturn zum vorgeben, dass der rückkehrwert einer funktion
nicht ignoriert werden darf.
eine ähnliche technik gibt es wohl auch bei intellij. nur mit der
findbugs-lösung geht es auch in eclipse.
viel spass beim ausprobieren
frank