Als «java-8» getaggte Fragen

Verwenden Sie dieses Tag für Fragen zu Java 8, Version 8 (interne Nummer 1.8) der Java-Plattform, die am 18. März 2014 veröffentlicht wurde. In den meisten Fällen sollten Sie auch das Java-Tag angeben.

7
Beispiel für eine FlatMap-Methode für Java 8 Streams
Ich habe das bevorstehende überprüft Java update, nämlich : Java 8 or JDK 8. Ja, ich bin ungeduldig, es gibt viele neue Dinge, aber es gibt etwas, das ich nicht verstehe, einen einfachen Code: final Stream<Integer>stream = Stream.of(1,2,3,4,5,6,7,8,9,10); stream.flatMap(); Die Javadocs sind public <R> Stream<R> flatMap(Function<? super T,? extends Stream<? …

3
Warum verursacht ein paralleler Stream mit Lambda im statischen Initialisierer einen Deadlock?
Ich bin auf eine seltsame Situation gestoßen, in der die Verwendung eines parallelen Streams mit einem Lambda in einem statischen Initialisierer scheinbar ohne CPU-Auslastung ewig dauert. Hier ist der Code: class Deadlock { static { IntStream.range(0, 10000).parallel().map(i -> i).count(); System.out.println("done"); } public static void main(final String[] args) {} } Dies …

7
Gibt es eine Möglichkeit, ZoneId in Java 8 in ZoneOffset zu konvertieren?
Ich habe eine Epochensekunde und eine zoneId nach Methode1. Es kann mit der Systemstandardzone zoneId in LocalDateTime konvertiert werden, aber ich finde keine Möglichkeit, die Epochensekunde nach Methode2 in LocalDateTime zu konvertieren, da es keine gibt. ZoneOffset.systemDefaultIch denke, es ist dunkel. import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset} val epochSecond = System.currentTimeMillis() …
85 java  java-8  java-time 

4
Warum kann dieses Java 8-Lambda nicht kompiliert werden?
Der folgende Java-Code kann nicht kompiliert werden: @FunctionalInterface private interface BiConsumer<A, B> { void accept(A a, B b); } private static void takeBiConsumer(BiConsumer<String, String> bc) { } public static void main(String[] args) { takeBiConsumer((String s1, String s2) -> new String("hi")); // OK takeBiConsumer((String s1, String s2) -> "hi"); // Error …

3
Ein besonderes Merkmal der Inferenz vom Ausnahmetyp in Java 8
Beim Schreiben von Code für eine andere Antwort auf dieser Site bin ich auf diese Besonderheit gestoßen: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings("unchecked") static <T extends Throwable> void sneakyThrow(Throwable t) throws T { throw (T) …

5
Warum gibt Stream.allMatch () für einen leeren Stream true zurück?
Mein Kollege und ich hatten einen Fehler, der auf unserer Annahme beruhte, dass ein leerer Stream-Aufruf zurückkehren allMatch()würde false. if (myItems.allMatch(i -> i.isValid()) { //do something } Natürlich ist es unsere Schuld, Dokumentation anzunehmen und nicht zu lesen. Was ich jedoch nicht verstehe, ist, warum das Standardverhalten allMatch()für einen leeren …

4
Sehr verwirrt durch Java 8 Comparator Typ Inferenz
Ich habe den Unterschied zwischen Collections.sortund untersucht list.sort, insbesondere in Bezug auf die Verwendung der Comparatorstatischen Methoden und ob Parametertypen in den Lambda-Ausdrücken erforderlich sind. Bevor wir beginnen, weiß ich, dass ich Methodenreferenzen verwenden könnte, z. B. Song::getTitleum meine Probleme zu lösen, aber meine Abfrage hier ist nicht so sehr …

8
Sind Standardeinstellungen in JDK 8 eine Form der Mehrfachvererbung in Java?
Mit einer neuen Funktion in JDK 8 können Sie eine vorhandene Schnittstelle erweitern und gleichzeitig die Binärkompatibilität beibehalten. Die Syntax ist wie public interface SomeInterface() { void existingInterface(); void newInterface() default SomeClass.defaultImplementation; } Auf diese Weise SomeInterfacetreten bei allen vorhandenen Implementierungen beim Upgrade auf diese neue Version nicht alle plötzlich …

5
Wie kann ich einen Java 8-Stream in einer Guava ImmutableCollection sammeln?
Ich möchte Folgendes tun: List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); aber in einer Weise, dass die resultierende Liste eine Implementierung von Guava ist ImmutableList. Ich weiß, ich könnte es tun List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); List<Integer> immutableList = ImmutableList.copyOf(list); aber ich möchte es direkt sammeln. ich habe es versucht List<Integer> list …

6
Java 8 Lambda-Ausdrücke - Was ist mit mehreren Methoden in verschachtelten Klassen?
Ich lese über die neuen Funktionen unter: http://www.javaworld.com/article/2078836/java-se/love-and-hate-for-java-8.html Ich habe das folgende Beispiel gesehen: Verwenden der anonymen Klasse: button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Action Detected"); } }); Mit Lambda: button.addActionListener(e -> { System.out.println("Action Detected"); }); Was würde jemand mit einem tun, MouseListenerwenn er mehrere Methoden innerhalb der …

3
forEach vs forEachOrdered in Java 8 Stream
Ich verstehe, dass diese Methoden die Ausführungsreihenfolge unterscheiden, aber in all meinen Tests kann ich keine unterschiedliche Ausführungsreihenfolge erreichen. Beispiel: System.out.println("forEach Demo"); Stream.of("AAA","BBB","CCC").forEach(s->System.out.println("Output:"+s)); System.out.println("forEachOrdered Demo"); Stream.of("AAA","BBB","CCC").forEachOrdered(s->System.out.println("Output:"+s)); Ausgabe: forEach Demo Output:AAA Output:BBB Output:CCC forEachOrdered Demo Output:AAA Output:BBB Output:CCC Bitte geben Sie Beispiele an, wenn 2 Methoden unterschiedliche Ausgaben erzeugen.

4
Wie behalte ich die Iterationsreihenfolge einer Liste bei, wenn Collections.toMap () in einem Stream verwendet wird?
Ich erstelle ein Mapaus einem Listwie folgt: List<String> strings = Arrays.asList("a", "bb", "ccc"); Map<String, Integer> map = strings.stream() .collect(Collectors.toMap(Function.identity(), String::length)); Ich möchte die gleiche Iterationsreihenfolge wie in der beibehalten List. Wie kann ich LinkedHashMapmit den Collectors.toMap()Methoden eine erstellen ?

12
Wie führe ich Logik auf Optional aus, wenn sie nicht vorhanden ist?
Ich möchte den folgenden Code mit java8 ersetzen Optional: public Obj getObjectFromDB() { Obj obj = dao.find(); if (obj != null) { obj.setAvailable(true); } else { logger.fatal("Object not available"); } return obj; } Der folgende Pseudocode funktioniert nicht, da es keine orElseRunMethode gibt, aber er veranschaulicht trotzdem meinen Zweck: public …
83 java  java-8  optional 

11
Bei Verwendung von JavaFX in JRE 8 wird der Fehler "Zugriffsbeschränkung" angezeigt
Beim Versuch, Javafx-bezogene Klassen in meinem neuen Java 8-Projekt zu verwenden, wird durch Eclipse ein Zugriffsbeschränkungsfehler angezeigt. Bisher war die einzige "Lösung", die ich finden konnte, Eclipse anzuweisen, die Zugriffsbeschränkung zu ignorieren, aber damit bin ich nicht zufrieden. Ein Beispiel für den Fehler: Access restriction: The type Pane is not …
82 java  eclipse  javafx  java-8 

9
Java 8: Formatieren von Lambda mit Zeilenumbrüchen und Einrückungen
Was ich mit Lambda-Einrückung erreichen möchte, ist Folgendes: Mehrzeilige Anweisung: String[] ppl = new String[] { "Karen (F)", "Kevin (M)", "Lee (M)", "Joan (F)", "Des (M)", "Rick (M)" }; List<String> strings = Arrays.stream(ppl) .filter( (x) -> { return x.contains("(M)"); } ).collect(Collectors.toList()); strings.stream().forEach(System.out::println); Einzeilige Anweisung: List<String> strings = Arrays.stream(ppl) .map((x) -> …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.