2016-05-04 16 views
0

Ich habe einige Daten in der Eingabe, die ich verwenden müssen, um alle Eigenschaften eines POJO festzulegen. Der POJO könnte teilweise gesetzt sein. Mein Problem besteht darin, die Eigenschaft nur festzulegen, wenn die zugehörigen Eingabedaten nicht null sind. Ich weiß, dass ich dies auf zwei Arten tun:Set-Eigenschaft nur, wenn nicht Null ist

if (input != null) { 
    obj.setData(input); 
} 

oder

obj.setData(input != null ? input : obj.getData()); 

Ich bin für eine Lösung weniger hässlich und besser für Objekte mit einer großen Anzahl von Eigenschaften suche einzustellen.

+1

Nun, Sie für null zu überprüfen, um null zu überprüfen :-) –

+0

Ich suchte ähnliche Fragen vor der Veröffentlichung und ich habe das nicht gefunden. Vielleicht ist das anders. Mein Problem ist, vorhandene Daten in einem Pojo nicht mit einem Nullwert zu überschreiben. Weil ich nicht lange Erfahrung mit Java hatte (ich begann es vor 1 Jahr und vor einigen Monaten zu benutzen), hoffte ich auf die Existenz eines besseren Weges, dies zu tun. – user3138984

Antwort

4

Sie können auch verwenden java8Optional

obj.setData(Optional.ofNullable(input).orElse(obj.getData())); 
+0

Danke, aber ich kann Java 8 nicht verwenden. Ich muss Java 7 verwenden. – user3138984

+1

Für mich in diesem Fall muss die Nullprüfung innerhalb des Setter sein. –

+1

In Java 7 können Sie Optional von Guava verwenden –

0

Verwendung Guave:

String someString = "value"; 
Optional.fromNullable(someString).or("defaultValue"); 
Verwandte Themen