Ich suche nach einer einfachen Methode, um eine Callback-Methode auf jedes Element in einem String-Array anzuwenden. Zum Beispiel kann ich in PHP alle Elemente in einem Array wie folgt machen:
%Vor%Gibt es einen einfachen Weg, dies in Java zu erreichen?
Es gibt keinen Einzeiler, der integrierte Funktionen verwendet, aber Sie können sicherlich die Funktionalität anpassen, indem Sie über Ihr Array iterieren:
%Vor% Erstens sind Objekt-Arrays in Java denen von List
s weit unterlegen, also sollten Sie sie wirklich verwenden, wenn es möglich ist. Sie können eine Ansicht von String[]
als List<String>
mit Arrays.asList
erstellen.
Zweitens hat Java noch keine Lambda-Ausdrücke oder Methodenreferenzen, also gibt es keinen schönen Weg, dies zu tun ... und eine Methode mit ihrem Namen als String
zu referenzieren ist höchst fehleranfällig und keine gute Idee.
Das heißt, Guava bietet einige grundlegende Funktionselemente, mit denen Sie das tun können, was Sie wollen:
%Vor% Im Gegensatz zum Erstellen eines neuen Arrays oder List
und Kopieren der Kleinbuchstabenversion jedes String
in dieses Element werden die Elemente des ursprünglichen List
nicht iteriert, wenn sie erstellt werden und sehr wenig Speicher benötigt wird.
Mit Java 8 sollten endlich Java-Ausdrücke und Methodenreferenzen zu Java hinzugefügt werden, zusammen mit Erweiterungsmethoden für Funktionen höherer Ordnung wie map
, was dies wesentlich vereinfacht (etwa so):
Sie könnten Reflexion verwenden:
%Vor%Dann müssen Sie nur eine statische Methode irgendwo deklarieren und eine Referenz darauf mit der Reflexions-API erhalten.
Tags und Links java