2016-03-23 21 views
1

Ich möchte die nicht null Bedingung an vielen Stellen überprüfen, also welche Art und Weise die beste Leistung geben ..?Welcher ist der beste Weg, nicht Null-Bedingung zu verwenden, ob direkte Bedingung oder Verwendung von Hilfsmethoden?

1.Whether if(object !=null){ ... }

2.Whether if(Util.isNotNull(object)){...}

+0

Wenn 'Util.isNotNull' tut die offensichtliche Sache, diese würden etwa die gleichen Leistungsmerkmale haben, obwohl die erste wird mit ziemlicher Sicherheit besser lesbar usw. –

+0

Wenn Sie einen Methodenaufruf vermeiden können, vermeiden Sie es. –

+0

Die erste kann unabhängig von der Java-Version verwendet werden. Für das zweite Java wird 1.7+ benötigt. Daher ist es besser, den ersten Ansatz zu verwenden, wenn Sie sich nicht sicher sind, ob Sie die Java-Version verwenden. – Suyash

Antwort

2

Der erste Weg ist ein besserer Weg, mit

if(object !=null){ ... } 

gehen, wie es die short circuit evaluation.

+0

Der zweite Weg erzeugt einen ungeraden Stapel für die Methode isNotNull, wie Methoden gut für zusätzliche cheks ist, Beispiel 'isNotEmpty (String txt) {zurück txt! = Null && txt.length> 0}' – Nurlan

+0

bin auf der Suche nach der Laufzeit nur Leistung .. –

0

einfach

tun verwenden
if(obj == null) throw new IllegalArgumentException(); 

else{ 
// Do your computations 
.... 
} 
0

Es sind verschiedene Utility-Klassen verfügbar, die für die Überprüfung von Null- und Leerwerten in Abhängigkeit von dem zu überprüfenden Objekt verwendet werden können. Für Strings haben Sie org.apache.commons.lang.StringUtils.isBlank, die Folgendes tun: Prüft, ob ein String Leerzeichen, leer ("") oder null ist.

StringUtils.isBlank(null)  = true 
StringUtils.isBlank("")  = true 
StringUtils.isBlank(" ")  = true 
StringUtils.isBlank("bob")  = false 
StringUtils.isBlank(" bob ") = false 

für die Sammlung, haben Sie org.apache.commons.collections.CollectionUtils.isEmpty der prüft, ob Ihre Sammlung nicht null ist und nicht leer