{"id":127,"date":"2009-10-08T19:37:33","date_gmt":"2009-10-08T17:37:33","guid":{"rendered":"http:\/\/wenzlaff.de\/cgi-bin\/weblog_basic\/index.php?p=127"},"modified":"2021-11-22T17:17:03","modified_gmt":"2021-11-22T16:17:03","slug":"java-autoboxing","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=127","title":{"rendered":"Java Autoboxing"},"content":{"rendered":"<p>In Java 1.5 wurde das &#8222;autoboxing&#8220; und &#8222;auto-unboxing&#8220; zur Sprache hinzugef\u00fcgt.<br \/>\nEs wird jetzt <strong>automatisch<\/strong> von einem &#8222;primitiven&#8220; Datentyp wie int, boolean oder double in die korrespondierenden &#8222;boxing&#8220; Datentype wie Integer, Boolean oder Double gewandelt. Siehe Beispiel 1. Was kommt aber in Beispiel 2 raus, wenn man die Klasse ausf\u00fchrt? <\/p>\n<p><code><br \/>\npublic class <strong>Unm\u00f6glich <\/strong>{<\/p>\n<p>\tprivate static Integer i;<\/p>\n<p>\tpublic static void main(String[] args) {<\/p>\n<p>                \/\/ Beispiel 1<br \/>\n               \tint x = new Integer(42);\t\/\/ Integer nach int (unboxed)<br \/>\n\t\tInteger y = 42;                \/\/ int nach Integer (boxed)<\/p>\n<p>                \/\/ Beispiel 2<br \/>\n\t\tif (i == 42){<br \/>\n\t\t\tSystem.out.println(\"Unm\u00f6gliches autoboxing!\");<br \/>\n\t\t}<br \/>\n\t}<br \/>\n}<\/code><!--more--><br \/>\nEin Umlaut im Klassennamen ist nicht sch\u00f6n, aber daran liegt es nicht das eine <strong>NullPointerException<\/strong> geworfen wird. Es liegt daran, das i nicht initialisiert also <strong>null <\/strong>ist.<br \/>\nDer Integer i wird auto-unboxed und da er null ist kommt auch eine NPE.<br \/>\nBesser w\u00e4hre hier, i als int zu deklarieren, dann l\u00e4uft es auch mit der 42 \ud83d\ude09 und schneller und einfacher ist es auch.<\/p>\n<p>Also Vorsicht, wer auto-boxing verwendet, kann auch leicht NPE zur Laufzeit bekommen.<\/p>\n<p>Mehr zur 42 hier.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java 1.5 wurde das &#8222;autoboxing&#8220; und &#8222;auto-unboxing&#8220; zur Sprache hinzugef\u00fcgt. Es wird jetzt automatisch von einem &#8222;primitiven&#8220; Datentyp wie int, boolean oder double in die korrespondierenden &#8222;boxing&#8220; Datentype wie Integer, Boolean oder Double gewandelt. Siehe Beispiel 1. Was kommt aber in Beispiel 2 raus, wenn man die Klasse ausf\u00fchrt? public class Unm\u00f6glich { private &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=127\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eJava Autoboxing\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[109,20,50,143,90],"class_list":["post-127","post","type-post","status-publish","format-standard","hentry","category-java","tag-auto-unboxing","tag-autoboxing","tag-item-49","tag-java-15","tag-tag-hinzufugen"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=127"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/127\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=127"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}