{"id":1520,"date":"2012-08-20T13:50:52","date_gmt":"2012-08-20T11:50:52","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=1520"},"modified":"2014-07-29T20:25:23","modified_gmt":"2014-07-29T18:25:23","slug":"thema-der-woche-checkfornull-nonnull","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2012\/08\/thema-der-woche-checkfornull-nonnull\/","title":{"rendered":"Thema der Woche: @CheckForNull, @Nonnull"},"content":{"rendered":"<p>Null-Pointer-Exceptions sind eine Qual, da oftmals eine Referenzvariable null ist, die nicht null sein darf. Das kommt oft erst zur Laufzeit bei ganz besonderen Ausf\u00fchrungspfaden raus.\u00a0 Mit Annotationen kann man dem ein wenig entgegentreten, da man zum Einen gut dokumentiert was erlaubt ist und was nicht, und zum Anderen Analysetools erlaubt, sich die Ausf\u00fchrungspfade etwas genauer anzuschauen.<\/p>\n<ul>\n<li>Lade die Annotationen von JSR-305 von <a href=\"http:\/\/mvnrepository.com\/artifact\/com.google.code.findbugs\/jsr305\">http:\/\/mvnrepository.com\/artifact\/com.google.code.findbugs\/jsr305<\/a> und binde sie in den Klassenpfad ein.<\/li>\n<li>Lies\u00a0<a href=\"http:\/\/www.sw-engineering-candies.com\/blog-1\/findbugstmwarningsbysamplenonnullandcheckreturnvalueofjsr-305\">http:\/\/www.sw-engineering-candies.com\/blog-1\/findbugstmwarningsbysamplenonnullandcheckreturnvalueofjsr-305<\/a>.<\/li>\n<li>Kopiere das Beispiel in den Workspace.<\/li>\n<li>Stelle in Eclipse in den Warnings die Pr\u00fcfung ein, siehe auch <a href=\"http:\/\/wiki.eclipse.org\/JDT_Core\/Null_Analysis\">http:\/\/wiki.eclipse.org\/JDT_Core\/Null_Analysis<\/a>. Achtung, stelle die Annotationen von den Paketen org.eclipse.jdt.annotation auf javax.annotation um!<\/li>\n<li>Probiere aus, welche Warnings in Eclipse was bedeuten.<\/li>\n<li>Welche Probleme tauchen pl\u00f6tzlich mit @NonNull auf?<\/li>\n<li>(Optional: Teste das mit FindBugs im Build.)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Null-Pointer-Exceptions sind eine Qual, da oftmals eine Referenzvariable null ist, die nicht null sein darf. Das kommt oft erst zur Laufzeit bei ganz besonderen Ausf\u00fchrungspfaden raus.\u00a0 Mit Annotationen kann man dem ein wenig entgegentreten, da man zum Einen gut dokumentiert was erlaubt ist und was nicht, und zum Anderen Analysetools erlaubt, sich die Ausf\u00fchrungspfade etwas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[13],"tags":[],"class_list":["post-1520","post","type-post","status-publish","format-standard","hentry","category-die-wochentliche-dosis-java"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=1520"}],"version-history":[{"count":5,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1520\/revisions"}],"predecessor-version":[{"id":2920,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1520\/revisions\/2920"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=1520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=1520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=1520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}