2016-06-16 18 views
1

Ich habe eine sehr grundlegende Frage. Die, wenn die folgenden 2 ist eine bessere Performance-weise:lokale Variable oder wiederholte Anrufe?

if (getSomeValue() != null) { 
    processSomeValue(getSomeValue()); 
} 

ODER

String someValue = getSomeValue(); 
if (someValue != null) { 
    processSomeValue(someValue); 
} 

getSomeValue() ein normaler Getter ist, die nichts anderes tut.

+3

Ich bezweifle, dass es viel Unterschied geben wird. Vielleicht, wenn der Getter einige schwere Aufgaben ausführen würde und dieser Ausschnitt einige Millionen Mal in einer Schleife aufgerufen wird ... Scheint wie eine vorzeitige Optimierung für mich. Oder versuchst du einen Kampf gegen den Code-Stil zu führen? – Fildor

+1

Dort Unterschied ist irrelevant, wenn es nur ein Getter ist. –

+0

Es hat nichts mit der Leistung zu tun, außer 'getSomeValue();' ist ein teurer Anruf. – Kayaman

Antwort

2

Eine Best Practice ist immer die zweite Möglichkeit zu verwenden, auch wenn Sie bereits wissen, dass getSomeValue() ein einfacher Getter ist. Die Hauptsache ist, dass der Anruf in der Zukunft beibehalten und von jemandem in der Zukunft geändert werden kann. Jeder Entwickler, der den inneren Code von getSomeValue() ändert, kennt möglicherweise die Aufrufmethode nicht, die Sie gerade verwenden.

Verwandte Themen