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.

4
Hinzufügen eines neuen Werts zum vorhandenen Stream
Gibt es eine gute Möglichkeit, dem Bestehenden einen neuen Wert hinzuzufügen Stream? Ich kann mir nur so etwas vorstellen: public <T> Stream<T> addToStream(Stream<T> stream, T elem ) { List<T> result = stream.collect(Collectors.toList()); result.add(elem); return result.stream(); } Aber ich suche etwas Prägnanteres, das ich ohne Ausführlichkeit im Lambda-Ausdruck verwenden kann. Eine …
79 java  java-8  wildcard 

2
Warum verhält sich \ R in regulären Ausdrücken zwischen Java 8 und Java 9 anders?
Der folgende Code wird sowohl in Java 8 als auch in Java kompiliert, verhält sich jedoch unterschiedlich. class Simple { static String sample = "\nEn un lugar\r\nde la Mancha\nde cuyo nombre\r\nno quiero acordarme"; public static void main(String args[]){ String[] chunks = sample.split("\\R\\R"); for (String chunk: chunks) { System.out.println("Chunk : "+chunk); …
78 java  regex  unicode  java-8  java-9 

3
Gibt es eine Möglichkeit, Lambdas zu vergleichen?
Angenommen, ich habe eine Liste von Objekten, die mit Lambda-Ausdrücken (Abschlüssen) definiert wurden. Gibt es eine Möglichkeit, sie zu inspizieren, damit sie verglichen werden können? Der Code, der mich am meisten interessiert, ist List<Strategy> strategies = getStrategies(); Strategy a = (Strategy) this::a; if (strategies.contains(a)) { // ... Der vollständige Code …
78 java  lambda  java-8 

9
Monaden mit Java 8
Kann jemand ein Beispiel für die Verwendung von Java geben, um zu verstehen, was eine Monade ist? Sind sie möglich? Lambda-Ausdrücke sind mit Java möglich, wenn Sie das Lambda-kompatible JDK8 vor der Veröffentlichung von hier herunterladen: http://jdk8.java.net/lambda/ Ein Beispiel für ein Lambda, das dieses JDK verwendet, ist unten dargestellt. Kann …
78 java  java-8  monads  optional 


3
Warum wird dieses Java 8-Programm nicht kompiliert?
Dieses Programm wird in Java 7 (oder in Java 8 mit -source 7) problemlos kompiliert, kann jedoch nicht mit Java 8 kompiliert werden: interface Iface<T> {} class Impl implements Iface<Impl> {} class Acceptor<T extends Iface<T>> { public Acceptor(T obj) {} } public class Main { public static void main(String[] args) …

3
Collectors.toMap () keyMapper - prägnanter Ausdruck?
Ich versuche, im folgenden Collectors.toMap()Aufruf einen prägnanteren Ausdruck für den Funktionsparameter "keyMapper" zu finden : List<Person> roster = ...; Map<String, Person> map = roster .stream() .collect( Collectors.toMap( new Function<Person, String>() { public String apply(Person p) { return p.getLast(); } }, Function.<Person>identity())); Es scheint, dass ich in der Lage sein sollte, …


7
Was ist der Unterschied zwischen putIfAbsent und computeIfAbsent in Java 8 Map?
Beim Lesen eines interessanten Artikels behaupten die Jungs, dass der Unterschied zwischen den beiden Funktionen sind: Beide Funktionen möchten ein Element hinzufügen, wenn der angegebene Schlüssel noch nicht in Map vorhanden ist. putIfAbsent fügt ein Element mit dem angegebenen Wert hinzu, während computeIfAbsent ein Element mit dem mit dem Schlüssel …
77 java  java-8 

2
Warum ist StringBuilder # append (int) in Java 7 schneller als in Java 8?
Während ich nach einer kleinen Debatte über die Verwendung "" + nund Integer.toString(int)Konvertierung eines ganzzahligen Grundelements in einen String suchte, schrieb ich dieses JMH- Mikrobenchmark: @Fork(1) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class IntStr { protected int counter; @GenerateMicroBenchmark public String integerToString() { return Integer.toString(this.counter++); } @GenerateMicroBenchmark public String stringBuilder0() { return new …


3
Der rekursive ConcurrentHashMap.computeIfAbsent () -Aufruf wird niemals beendet. Fehler oder "Feature"?
Vor einiger Zeit habe ich über eine Java 8-Methode zur rekursiven Berechnung von Fibonacci-Zahlen mit einem ConcurrentHashMapCache und der neuen, nützlichen computeIfAbsent()Methode gebloggt : import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class Test { static Map<Integer, Integer> cache = new ConcurrentHashMap<>(); public static void main(String[] args) { System.out.println( "f(" + 8 + …

1
Null-Safe-Mapping-Komparator mit Standardimplementierungen
Gibt es eine integrierte Möglichkeit, einen nullsicheren Mapping-Komparator in Java 8 zu erstellen, ohne eine eigene Implementierung von zu schreiben Comparator? Wenn der folgende Code ausgeführt wird, wird eine NPE verursacht, da das keyExtractorArgument von Comparator.comparing()möglicherweise einen nullWert zurückgibt: public class ToSort { private String sortBy; public ToSort(String sortBy) { …

10
Wie erhalte ich die MethodInfo einer Java 8-Methodenreferenz?
Bitte schauen Sie sich den folgenden Code an: Method methodInfo = MyClass.class.getMethod("myMethod"); Dies funktioniert, aber der Methodenname wird als Zeichenfolge übergeben, sodass dies auch dann kompiliert wird, wenn myMethod nicht vorhanden ist. Auf der anderen Seite führt Java 8 eine Methodenreferenzfunktion ein. Es wird zur Kompilierungszeit überprüft. Ist es möglich, …


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.