{"id":1772,"date":"2012-12-04T15:28:26","date_gmt":"2012-12-04T14:28:26","guid":{"rendered":"https:\/\/sgaul.de\/?p=1772"},"modified":"2012-12-02T22:01:03","modified_gmt":"2012-12-02T21:01:03","slug":"java-nicht-null-oder-default-wert","status":"publish","type":"post","link":"https:\/\/sgaul.de\/2012\/12\/04\/java-nicht-null-oder-default-wert\/","title":{"rendered":"Java: Nicht-Null- oder Default-Wert"},"content":{"rendered":"

Ein typisch-nerviges Java-Szenario ist das ewige Nullgepr\u00fcfe. Oft will man den Wert aus einem Parameter oder aber eine Alternative nutzen, wenn der Parameter null ist. Klassisches Beispiel: Ist ein String null, gib einen leeren String aus, wenn nicht, gib den String selbst aus. Eine einfache L\u00f6sung daf\u00fcr bietet beispielsweise Apache Commons in der Funktionssammlung ObjectUtils<\/a>.<\/p>\n

ObjectUtils.defaultIfNull<\/h2>\n
System.out.println((String) null);\r\n\/\/ \"null\"\r\nSystem.out.println(ObjectUtils.defaultIfNull(null, \"\"));\r\n\/\/ \"\"\r\nSystem.out.println(ObjectUtils.defaultIfNull(\"a\", \"\"));\r\n\/\/ \"a\"<\/pre>\n

In der mir noch stets unterkommenden Variante 2.4 ist recht nervig, dass die Funktion schlicht Object zur\u00fcckgibt und man seine Ergebnisse stets umst\u00e4ndlich casten musste. In 3.1 ist der R\u00fcckgabetyp endlich generisch und kann direkt weiterverwendet werden.<\/p>\n

ObjectUtils.firstNonNull<\/h2>\n

In eine \u00e4hnliche Kerbe schl\u00e4gt die Funktion firstNonNull aus dem selben Paket. Sie liefert aus einer Liste optionaler Werte den ersten, der nicht null ist.<\/p>\n

System.out.println(ObjectUtils.firstNonNull(null, null, \"a\", null, \"b\"));\r\n\/\/ \"a\"<\/pre>\n","protected":false},"excerpt":{"rendered":"

Ein typisch-nerviges Java-Szenario ist das ewige Nullgepr\u00fcfe. Oft will man den Wert aus einem Parameter oder aber eine Alternative nutzen, wenn der Parameter null ist. Klassisches Beispiel: Ist ein String null, gib einen leeren String aus, wenn nicht, gib den String selbst aus. Eine einfache L\u00f6sung daf\u00fcr bietet beispielsweise Apache Commons in der Funktionssammlung ObjectUtils.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[91],"tags":[6],"_links":{"self":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1772"}],"collection":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/comments?post=1772"}],"version-history":[{"count":8,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1772\/revisions"}],"predecessor-version":[{"id":1780,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1772\/revisions\/1780"}],"wp:attachment":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/media?parent=1772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/categories?post=1772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/tags?post=1772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}