Vielleicht ist das sehr einfach, aber ich bin ein Neuling in Java 8-Funktionen und weiß nicht, wie ich das erreichen soll. Ich habe diese einfache Zeile, die den folgenden Text enthält:
"Schlüssel, Name"
und ich möchte diese Zeile in ein String-Array konvertieren und jeden Wert durch das Komma (,) trennen. Ich möchte jedoch auch jedes Feld kürzen, bevor ich das endgültige Array zurückgebe.
Arrays.stream(line.split(",")).map(String::trim).toArray();
Dies gibt jedoch ein Object [] -Array anstelle eines String [] -Arrays zurück. Bei weiterer Prüfung kann ich bestätigen, dass es sich bei dem Inhalt tatsächlich um String-Instanzen handelt, das Array selbst jedoch aus Objektelementen besteht. Lassen Sie mich dies veranschaulichen. Dies sagt der Debugger über das zurückgegebene Objekt:
Object[]:
0 = (String) "Key"
1 = (String) "Name"
Soweit ich das beurteilen kann, liegt das Problem im Rückgabetyp des Map-Aufrufs, aber wie kann ich dafür sorgen, dass ein String [] -Array zurückgegeben wird?
String[]::new
Methodenreferenz tut und wie ich dasselbe mit einem regulären Lambda-Ausdruck tun kann? (Ich sehe, dass es einen "Wert" vom Typ int ergibt, aber es macht für mich keinen Sinn).