Heim >Java >javaLernprogramm >Function.identity() vs str->str: Welche Lambda-Syntax eignet sich am besten für Lesbarkeit und Effizienz?
str: Welche Lambda-Syntax eignet sich am besten für Lesbarkeit und Effizienz? " />
Function.identity() oder str->str: Welche Lambda-Syntax wird bevorzugt?
Bei der Arbeit mit Java 8-Lambdas kann es vorkommen, dass Einige Entwickler bevorzugen sie gegenüber der einfacheren Bezeichnersyntax für Identitätsfunktionen. Gibt es jedoch einen Leistungs- oder Lesbarkeitsvorteil gegenüber der andere?
Interne Unterschiede
Intern unterscheiden sich Function.identity() und Identifier darin, wie der Compiler sie übersetzt einzelne, gemeinsam genutzte Instanz, während Identifier -> Identifier für jedes Vorkommen eine neue Instanz erstellt.
Leistung Auswirkungen
In der aktuellen JRE-Implementierung kann die Verwendung von Function.identity() den Speicheraufwand im Vergleich zu Identifier -> geringfügig reduzieren. Dieser Unterschied ist jedoch in den meisten Anwendungen wahrscheinlich nicht signifikant.
Lesbarkeit
Bezeichner –> Bezeichner gilt im Allgemeinen als besser lesbar als Function.identity(). Die prägnante Syntax erleichtert das Verständnis der Absicht der Funktion. Function.identity() hingegen erfordert Kenntnisse der Funktionsschnittstelle und ist möglicherweise weniger intuitiv.
Debugging-Vorteile
Beim Kompilieren mit aktivierten Debug-Informationen die Kennung -> Die Bezeichnersyntax bietet detailliertere Debugging-Informationen als Function.identity(). Der Compiler generiert für jeden Lambda-Ausdruck eine synthetische Methode, die dabei helfen kann, die Quelle einer bestimmten Funktionsinstanz zu identifizieren.
Fazit
Letztendlich ist die Wahl zwischen Function.identity () und Bezeichner -> Der Identifikator ist größtenteils eine Frage der Präferenz. Wenn die Lesbarkeit Priorität hat oder Debugging-Informationen wichtig sind, ist der Bezeichner -> Bezeichner ist möglicherweise eine bessere Option. Wenn jedoch die Speicheroptimierung ein Problem darstellt, ist Function.identity() möglicherweise geringfügig effizienter.
Das obige ist der detaillierte Inhalt vonFunction.identity() vs str->str: Welche Lambda-Syntax eignet sich am besten für Lesbarkeit und Effizienz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!